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