gpt4 book ai didi

python - 如何根据行组将行重新排列为 Pandas 中的列

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:36 24 4
gpt4 key购买 nike

我遇到的问题是,如果我有以下按客户编号和日期列排序的数据框,如何将每个客户的日期和相应的薪水一一放入新列中。

    df = pd.DataFrame({'Customer Number':[1,1,1,2,2,3,3,3],
'Date': [2013, 2014, 2015, 2016, 2017, 2013, 2014, 2015],
'Salaries': [100, 200, 200, 300, 300, 4000, 5000, 5000]})

产生:

   Customer Number  Date  Salaries
0 1 2013 100
1 1 2014 200
2 1 2015 200
3 2 2016 300
4 2 2017 300
5 3 2013 4000
6 3 2014 5000
7 3 2015 5000

对于这个问题,我试图获得的输出类似于以下内容:

    Customer Number  Date 1  Salary 1  Date 2  Salary 2  Date 3  Salary 3
0 1 2013 100 2014 200 2015 200
1 2 2016 300 2017 300 NaN NaN
2 3 2013 4000 2014 5000 2015 5000

我曾尝试使用数据透视表来排列此数据并使用 numpy 来 reshape 表格,但无法完全设法以这种方式获取日期和薪水的新列。我希望对此有一个很好而简单的解决方案,但无法找到它。我真的很感激任何帮助解决这个问题。

最佳答案

累计数

c = 'Customer Number'
df.set_index([c, df.groupby(c).cumcount() + 1]).unstack().sort_index(1, 1)

Date Salaries Date Salaries Date Salaries
1 1 2 2 3 3
Customer Number
1 2013.0 100.0 2014.0 200.0 2015.0 200.0
2 2016.0 300.0 2017.0 300.0 NaN NaN
3 2013.0 4000.0 2014.0 5000.0 2015.0 5000.0

关于python - 如何根据行组将行重新排列为 Pandas 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com