Pandas入门教程

Pandas是一个开源的,BSD许可的库,为Python编程语言提供高性能,易于使用的数据结构和数据分析工具。

Pandas特色

Pandas 适用于处理以下类型的数据:

  • 与 SQL 或 Excel 表类似的,含异构列的表格数据;
  • 有序和无序(非固定频率)的时间序列数据;
  • 带行列标签的矩阵数据,包括同构或异构型数据;
  • 任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。

Pandas数据结构

Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 R 用户,DataFrame 提供了比 R 语言 data.frame 更丰富的功能。Pandas 基于 NumPy 开发,可以与其它第三方科学计算支持库完美集成。

维数 名称 描述
1 Series 带标签的一维同构数组
2 DataFrame 带标签的,大小可变的,二维异构表格

Pandas用法

Pandas用法与Matlab中矩阵操作很类似,熟悉Matlab操作的同学可以很快上手Pandas。

生成对象

生成Series对象:

1
2
3
4
5
6
7
8
9
10
11
In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8])

In [4]: s
Out[4]:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64

生成DataFrame对象:

1
2
3
4
5
6
7
8
9
10
11
In [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

In [8]: df
Out[8]:
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988

列切片

1
df1 = df[df.columns[0:6]];

重命名列名

1
df1.columns['id','name','sex','age','department','work']

过滤行

1
df1 = df1[df1.iloc[:,1]=='YES']

合并表格

pandas 2.0实现数据的合并与拼接,主要有三种方法:

  • join 最简单,主要用于基于索引的横向合并拼接
  • merge 最常用,主要用于基于指定列的横向合并拼接
  • concat最强大,可用于横向和纵向合并拼接
1
2
# 合并两个表,df1 和 df2 表结构一样
df3 = pd.concat([df1,df2])

毫秒解析

1
2
timeDelta = datetime.datetime(2024,11,11) - datetime.datetime(1900,1,1)
df3['datetime'] = pd.to_datetime(df['datetime'], format='%Y-%m-%d %H:%M:%S:%f') + timeDelta

按时间排序

1
df3 = df3.sort_values(by="datetime")

输出CSV表格

1
df3.to_csv(filePath + 'test.csv',index=0)

参考链接

  1. Pandas 中文,by pypandas.
  2. 十分钟入门 Pandas,by pypandas.
  3. Python读取csv文件的三种方式,by 涛声依旧2019.
  4. Python模块化开发组织代码程序示例,by BabyFish13.
  5. Python最佳实践指南!,by Prodesire.
  6. pandas中DataFrame 数据合并,连接(merge,join,concat) ,by Vincent-yuan.
  7. 【已解决】AttributeError: ‘DataFrame‘ object has no attribute ‘append‘,by zhtstar.
  8. pandas DataFrame数据重命名列名的几种方式,by littleRpl.
  9. Pandas 毫秒级时间解析,by 一定波兮.