gpt4 book ai didi

python - reshape Pandas 数据框将一行反转为多列

转载 作者:行者123 更新时间:2023-11-28 21:44:11 26 4
gpt4 key购买 nike

我有一个如下所示的数据框。它包含 ID 列、月份以及客户是否购买了特定产品。

ID      Date     Buy_Or_Not
1 2016-01 1
1 2016-02 1
1 2016-03 0
1 2016-04 1
1 2016-05 0
2 2016-01 1
2 2016-02 1
2 2016-03 1
2 2016-04 1
2 2016-05 0

我想把它 reshape 成这样。

ID      2016-01 2016-02 2016-03 2016-04 2016-05
1 1 1 0 1 0
2 1 1 1 1 0

完成这项工作的任何建议。

最佳答案

这里有3种整形方式

1) 使用 pd.pivot

In [58]: df.pivot(index='ID', columns='Date', values='Buy_Or_Not')
Out[58]:
Date 2016-01 2016-02 2016-03 2016-04 2016-05
ID
1 1 1 0 1 0
2 1 1 1 1 0

2) 使用 pd.crosstab

In [59]: pd.crosstab(df['ID'], df['Date'], df['Buy_Or_Not'], aggfunc=sum)
Out[59]:
Date 2016-01 2016-02 2016-03 2016-04 2016-05
ID
1 1 1 0 1 0
2 1 1 1 1 0

3) 使用 groupbyunstack

In [60]: df.groupby(['ID', 'Date']).sum().unstack('Date')
Out[60]:
Buy_Or_Not
Date 2016-01 2016-02 2016-03 2016-04 2016-05
ID
1 1 1 0 1 0
2 1 1 1 1 0

关于python - reshape Pandas 数据框将一行反转为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41084682/

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