Pandas 基础(10) - 用 Pivot table 做格式转换
2024-08-27 18:16:16
Pivot allows you to transform or reshape data.
Pivot 可以帮助我们改变数据的格式, 下面两个例子可以作为参考:
下面来看下具体实现, 首先引入一个 csv 文件(已上传)
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather.csv')
输出:
格式转换, 设置 'date' 为索引列, 也就让'date' 做每一行的输出依据, 然后设置'city' 为每一列输出的依据:
df.pivot(index='date', columns='city')
还可以给出第三个参数, 指定输出的内容:
df.pivot(index='date', columns='city', values='humidity')
下面来看下 pivot table:
pivot table is used to summarize and aggregate data inside dataframe.
pivot table 可以用来很好地总结整合数据. 下面通过一个例子来看一下:
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather2.csv')
输出:
从这个输出可以看出目前的数据结构很乱, 这时, 我们就可以用 pivot table 来做整合:
df.pivot_table(index='city', columns='date')
从结果可以看出, 这样整合之后, 取的是每天每个城市每个事件的平均值.
对于 pivot_table() 函数, 我们还可以通过第三个参数 'aggfun' 来做很多的变化, 下面分别来看下:
取和:
df.pivot_table(index='city', columns='date', aggfunc='sum')
取数据的条数:
df.pivot_table(index='city', columns='date', aggfunc='count')
求差异:
df.pivot_table(index='city', columns='date', aggfunc='diff')
求平均值, 其实如果不加这个参数, 默认也是求平均值:
df.pivot_table(index='city', columns='date', aggfunc='mean')
横向纵向分别求和的平均值:
df.pivot_table(index='city', columns='date', margins=True)
以上, 大家可以实际运行一下, 看看输出的结果.
下面介绍最后一个点, 对数据进行分组整理:
首先, 还是先引入一个文件做例子:
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/10_pivot/weather3.csv')
输出:
然后, 我们想实现的是把数据按照月份分组:
df.pivot_table(index=pd.Grouper(freq='M', key='date'), columns='city')
但是按照上面的代码运行, 会报错, 提示 'date' 列不是时间格式, 所以需要先把'date' 列的格式改成时间:
df['date'] = pd.to_datetime(df['date'])
最后输出结果:
以上就是关于 pivot 的常用方法, enjoy~~~
最新文章
- 邻接表的广度优先遍历(java版)
- MessageBox.Show()的各种用法
- PRINCE2风险模块
- eclipse中tomcat能正常启动,但是浏览器访问不了tomcat首页
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:1.资源准备
- 使用python程序监控云服务器的带宽
- IPv6-only 的兼容性解决方案
- window、linux系统与linux服务器之间使用svn同步及自动部署代码的方法
- 关于npm run build 报错解决方案
- get 和free
- debian删除i386的包
- CentOS7 firewalld防火墙配置
- Android学习之基础知识十二 — 第一讲:网络技术的使用
- 23种设计模式之责任链模式(Chain of Responsibility)
- 高性能流媒体服务器EasyDarwin
- 使用opencv3+python实现视频运动目标检测
- Linux 系统 /proc/[pid]/stat 文件解释
- C#给图片加文字水印
- python 日历(Calendar)模块
- WebLogic Server 多租户资源管理(resource consume manager)
热门文章
- 微信小程序开发笔记03
- Finalize方法的生成
- 【模拟与阅读理解】Gym - 101954C Rullete
- RTOS 和中断之间要注意的
- C++11 vector使用emplace_back代替push_back
- redis3.0.3集群搭建
- 【Python全栈】HTML <;!--...-->; 注释 、CSS/JS //注释 和 /*.....*/ 注释
- Spring Boot 自动配置原理(精髓)
- 颜色模式、DPI和PPI、位图和矢量图
- python之wtforms组件