【python进阶系列之pandas】数据处理的大佬 pandas之数据结构

简介: 这里是三岁,速学了pandas,怕自己不会用整理了一下资料,有问题的地方或者不对的希望大家多多指出,批评指正!!!由于pandas的内容过多我们就把经常使用的进行解析,其他的我们后续逐步添加

这里是三岁,速学了pandas,怕自己不会用整理了一下资料,有问题的地方或者不对的希望大家多多指出,批评指正!!!

由于pandas的内容过多我们就把经常使用的进行解析,其他的我们后续逐步添加


pandas是基于NumPy开发和改进的,许多地方相通但是更加方便,使用更加简单。

虽然小编对传说中的“牛皮”库完全不了解[无奈],接下来会逐渐更新,感谢大家支持!


参考资料:pandas中文官网


那就开始吧~~~~~


pandas概况



pandas是核心数据分析支持库,传说中的分析数据离不开!

pandas分为一维数据和二维数据(多维数据)


  • 一维数据:Series 带标签的一维同构数组
  • 二维数据:DataFrame 带标签的二维异构表格


安装与使用



安装pandas 在cmd 里面使用pip install pandas进行安装emmm我们顺便加上pip install Numpy让‘父子’团聚,嘻嘻嘻

导入,模块(库)


import pandas as pd
import numpy as np


Series



Series 是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引。


s = pd.Series(data, index=index)


使用以上代码进行创建Series

index 是轴标签列表,data是数据

其中data也是有脾气的有以下要求(支持以下数据类型)


  • Python 字典
  • 多维数组
  • 标量值(单个的数值)


范例:


s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
print(s)
print(s.index)


a -0.466190

b 0.097685

c 1.501163

d -0.051875

e -0.242873

dtype: float64

…………………………

Index([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], dtype=‘object’)


以上例子为轴标签进行指定的,接下来看看没有指定的:


s = pd.Series(np.random.randn(5))
print(s)
print(s.index)


0 0.347845

1 -0.018464

2 0.647092

3 -0.456581

4 0.098459

dtype: float64

…………………………

RangeIndex(start=0, stop=5, step=1)


没有指定的话就会从0开始逐个对标。

话说对字典的处理是怎么完成的?

让我们一起举个‘栗子’看看:


data = {'a': 0., 'b': 1., 'c': 2.}
s = pd.Series(data)
print(s)
print(s.index)


a 0.0

b 1.0

c 2.0

type: float64

…………………………

Index([‘a’, ‘b’, ‘c’], dtype=‘object’)


让我们看看这个例子


data = {'a': 0., 'b': 1., 'c': 2.}
s = pd.Series(data, index={'b', 'a', 'd', 'c'})
print(s)
print(s.index)


d NaN

a 0.0

c 2.0

b 1.0

dtype: float64

………………………

Index([‘d’, ‘a’, ‘c’, ‘b’], dtype=‘object’)


在里面出现了一个特殊的值NaN这个代表了数据的缺失

说完了字典那么标量值呢?

data 是标量值时,必须提供索引。Series 按索引长度重复该标量值。


s = pd.Series(5., index=['a', 'b', 'c', 'd', 'e'])
print(s)
print(s.index)


a 5.0

b 5.0

c 5.0

d 5.0

e 5.0

dtype: float64

…………………………

Index([‘a’, ‘b’, ‘c’, ‘d’, ‘e’], dtype=‘object’)


DataFrame



DataFrame 是由多种类型的列构成的二维标签数据结构,类似于 Excel 、SQL 表,或 Series 对象构成的字典。DataFrame 是最常用的 Pandas 对象,与 Series 一样,DataFrame 支持多种类型的输入数据:

  • 一维 ndarray、列表、字典、Series 字典
  • 二维 numpy.ndarray
  • 结构多维数组或记录多维数组
  • Series
  • DataFrame
    还可以有选择地传递 index(行标签)和 columns(列标签)参数。传递了索引或列,就可以确保生成的 DataFrame 里包含索引或列。


举例看看用字典转换成DataFrame


d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print(df)
print(df.index)
print(df.columns)


one two

a 1.0 1.0

b 2.0 2.0

c 3.0 3.0

d NaN 4.0

……………………

Index([‘a’, ‘b’, ‘c’, ‘d’], dtype=‘object’)

……………………

Index([‘one’, ‘two’], dtype=‘object’)


接下来看看定义了index的数据


d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d, index=['d', 'b', 'a'])
print(df)
print(df.index)
print(df.columns)


one two

d NaN 4.0

b 2.0 2.0

a 1.0 1.0

……………………

Index([‘d’, ‘b’, ‘a’], dtype=‘object’)

……………………

Index([‘one’, ‘two’], dtype=‘object’)


仔细看的会发现没有定义的数据直接就删除了,丝毫没有情面

那么接下来看看columns指定的情况


d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
     'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d, columns=['two', 'three'])
print(df)
print(df.index)
print(df.columns)


two three

a 1.0 NaN

b 2.0 NaN

c 3.0 NaN

d 4.0 NaN

……………………

Index([‘a’, ‘b’, ‘c’, ‘d’], dtype=‘object’)

……………………

Index([‘two’, ‘three’], dtype=‘object’)


又是见证奇迹的时刻没有定义的直接就删除了,新出现的直接NaN,代码界的黑寡妇!

问题来了!

这里的数据都是字典里面的用Series来表示的那么我们也没有什么办法用其他方法来表示呢?

让我们一起来看看


d = {'one': [1., 2., 3., 4.],
     'two': [5., 6., 7., 8.]}
df = pd.DataFrame(d)
print(df)
print(df.index)
print(df.columns)


one two

0 1.0 5.0

1 2.0 6.0

2 3.0 7.0

3 4.0 8.0

……………………

RangeIndex(start=0, stop=4, step=1)

……………………

Index([‘one’, ‘two’], dtype=‘object’)


我们用字典嵌套列表也是可以的但是要注意,每一项要对齐,不能够有缺失不然就会报错


d = {'one': [1., 2., 3.],
     'two': [5., 6., 7., 8.]}
df = pd.DataFrame(d)
print(df)
print(df.index)
print(df.columns)


raise ValueError(“arrays must all be same length”)

ValueError: arrays must all be same length


同理我们也可以使用index=[……]对index进行定义。此处就不演示了。

接下去使用列表嵌套字典进行处理


d = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(d)
print(df)
print(df.index)
print(df.columns)


a b c

0 1 2 NaN

1 5 10 20.0

……………………

RangeIndex(start=0, stop=2, step=1)

……………………

Index([‘a’, ‘b’, ‘c’], dtype=‘object’)


一样通过设置index来修改index的值


pd.DataFrame(d, index=['first', 'second'])


a b c

first 1 2 NaN

second 5 10 20.0


此处还有许多类型例如元组和字典的嵌套,字典和字典的嵌套,多维数组等等然后可以生成二维,三维,四维……多维的数据,里面需要认真理解,多加练习。

那么pandas的数据结构SeriesDataFrame就先告一段落啦!

记得关注三岁哟!

目录
相关文章
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
62 1
|
6月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
7月前
|
数据可视化 数据挖掘 数据处理
Pandas高级数据处理:交互式数据探索
Pandas 是数据分析中常用的数据处理库,提供了强大的数据结构和操作功能。本文从基础到高级,逐步介绍 Pandas 中交互式数据探索的常见问题及解决方案,涵盖数据读取、检查、清洗、预处理、聚合分组和可视化等内容。通过实例代码,帮助用户解决文件路径错误、编码问题、数据类型不一致、缺失值处理等挑战,提升数据分析效率。
164 32
|
7月前
|
数据采集 数据可视化 数据处理
Pandas高级数据处理:数据仪表板制作
《Pandas高级数据处理:数据仪表板制作》涵盖数据清洗、聚合、时间序列处理等技巧,解决常见错误如KeyError和内存溢出。通过多源数据整合、动态数据透视及可视化准备,结合性能优化与最佳实践,助你构建响应快速、数据精准的商业级数据仪表板。适合希望提升数据分析能力的开发者。
162 31
|
7月前
|
存储 安全 数据处理
Pandas高级数据处理:数据安全与隐私保护
在数据驱动的时代,数据安全和隐私保护至关重要。本文探讨了使用Pandas进行数据分析时如何确保数据的安全性和隐私性,涵盖法律法规要求、用户信任和商业价值等方面。通过加密、脱敏、访问控制和日志审计等技术手段,结合常见问题及解决方案,帮助读者在实际项目中有效保护数据。
140 29
|
7月前
|
缓存 数据可视化 BI
Pandas高级数据处理:数据仪表板制作
在数据分析中,面对庞大、多维度的数据集(如销售记录、用户行为日志),直接查看原始数据难以快速抓住重点。传统展示方式(如Excel表格)缺乏交互性和动态性,影响决策效率。为此,我们利用Python的Pandas库构建数据仪表板,具备数据聚合筛选、可视化图表生成和性能优化功能,帮助业务人员直观分析不同品类商品销量分布、省份销售额排名及日均订单量变化趋势,提升数据洞察力与决策效率。
123 12
|
7月前
|
消息中间件 数据挖掘 数据处理
Pandas高级数据处理:数据流式计算
在大数据时代,Pandas作为Python强大的数据分析库,在处理结构化数据方面表现出色。然而,面对海量数据时,如何实现高效的流式计算成为关键。本文探讨了Pandas在流式计算中的常见问题与挑战,如内存限制、性能瓶颈和数据一致性,并提供了详细的解决方案,包括使用`chunksize`分批读取、向量化操作及`dask`库等方法,帮助读者更好地应对大规模数据处理需求。
152 17
|
7月前
|
数据可视化 数据挖掘 数据处理
Pandas高级数据处理:数据可视化进阶
Pandas是数据分析的强大工具,能高效处理数据并与Matplotlib、Seaborn等库集成,实现数据可视化。本文介绍Pandas在绘制基础图表(如折线图)和进阶图表(如分组柱状图、热力图)时的常见问题及解决方案,涵盖数据准备、报错处理、图表优化等内容,并通过代码案例详细解释,帮助读者掌握数据可视化的技巧。
151 13
|
7月前
|
存储 安全 数据处理
Pandas高级数据处理:数据加密与解密
本文介绍如何使用Pandas结合加密库(如`cryptography`)实现数据加密与解密,确保敏感信息的安全。涵盖对称和非对称加密算法、常见问题及解决方案,包括密钥管理、性能优化、字符编码和数据完整性验证。通过示例代码展示具体操作,并提供常见报错的解决方法。
129 24
|
7月前
|
数据采集 SQL 数据可视化
Pandas高级数据处理:交互式数据探索
Pandas是Python中流行的数据分析库,提供丰富的数据结构和函数,简化数据操作。本文从基础到高级介绍Pandas的使用,涵盖安装、读取CSV/Excel文件、数据查看与清洗、类型转换、条件筛选、分组聚合及可视化等内容。掌握这些技能,能高效进行交互式数据探索和预处理。
82 6

推荐镜像

更多