美文网首页
Python-科学计算-pandas-05-Df变形

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

作者: Data_Python_VBA | 来源:发表于2019-11-25 20:01 被阅读0次

    微信公众号原文

    系统: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 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:Python-科学计算-pandas-05-Df变形

          本文链接:https://www.haomeiwen.com/subject/ugnjwctx.html