【问题标题】:Pandas - Reshape with delimited values (reverse melt)Pandas - 用定界值重塑(反向融化)
【发布时间】:2020-04-22 20:11:13
【问题描述】:

我是 Pandas 的新手(本周开始),我正处于脚本的最后一步,但我被卡住了。我需要在维护密钥的同时将我融化的数据汇总为单独的值。

我有一个数据框,目前看起来如下:

Index,ID#,Start Page, End Page
0, 1, Page 1, Page5
1, 2, Page 10, Page 20
2, 2, Page 25, Page 30

Index 是默认的数据帧索引。 ID# 是我的钥匙。

我正在尝试这个结果:

ID#,Start Page, End Page
1, Page 1, Page 5
2, Page 10; Page 25, Page 20; Page 30

我正在尝试向上滚动,将起始页(在本例中为分号)以及结束页分隔在一起。

我将 Jupyter Notebooks (python 3) 与 pandas 库一起使用。

感谢您的帮助。

【问题讨论】:

    标签: python-3.x pandas jupyter


    【解决方案1】:

    我想你想要groupby.agg:

    # chain with to_csv() if needed
    df.groupby('ID#', as_index=False)[['Start Page', 'End Page']].agg('; '.join)
    

    或者既然你提到了reverse melt,虽然慢了一点,pivot_table:

    (df.pivot_table(index=['ID#'], 
                   values=['Start Page', 'End Page'], 
                   aggfunc='; '.join)
       .reset_index()
    )
    

    输出:

       ID#        Start Page          End Page
    0    1            Page 1             Page5
    1    2  Page 10; Page 25  Page 20; Page 30
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      相关资源
      最近更新 更多