Python-科学计算-pandas-05-Df变形

阿里云2000元红包!本站用户参与享受九折优惠!

微信公众号原文

系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2

  • 这个系列讲讲Python的科学计算版块
  • 今天讲讲pandas模块:对DataFrame的行列按照新的规则进行重组

Part 1:示例

  1. 已知一个DataFrame,有4列["time", "pos", "value1", "value2", "value3"]
  2. time作为列,pos作为行重组DataFrame
  3. 从结果上看,相当于对value1这一列进行了重新布局,以time作为列,pos作为行

原DataFrame


1.png

变形后


2.png

Part 2:代码

import pandas as pd
dict_1 = {"time": ["2019-11-2", "2019-11-2", "2019-11-2", "2019-11-3", "2019-11-3", "2019-11-3"],
          "pos": ["P1", "P2", "P3", "P1", "P2", "P3"],
          "value1": [11, 22, 33, 44, 55, 66],
          "value2": [1, 2, 3, 4, 5, 6],
          "value3": [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(dict_1, columns=["time", "pos", "value1", "value2", "value3"])
df_2 = df.pivot(index="pos", columns='time', values='value1')
print(df)
print("\n")
print(df_2)

代码截图


3.png

Part 3:部分代码解读

  1. df.pivot(index="pos", columns='time', values='value1')
    index设置行索引
    columns设置列索引
    values设置内容
  2. 如果调换行列df_3 = df.pivot(index="time", columns='pos', values='value1'),结果如下图
  3. 结合上一章节,是不是可以快速算出每一个pos的各种统计值,如下图所示

调换行列


4.png

统计结果


5.png

本文为原创作品,欢迎分享朋友圈

长按图片识别二维码,关注本公众号
Python 优雅 帅气


12×0.8.jpg
https://www.jianshu.com/p/ccd415eff5fb

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论