gpt4 book ai didi

python - Pandas Dataframe 用 stack 和 unstack reshape

转载 作者:行者123 更新时间:2023-12-01 08:47:17 25 4
gpt4 key购买 nike

我正在尝试处理 pandas 堆栈和 unstack。我想知道是否有可能以这种方式 reshape 我的数据。

这是我正在练习的示例数据。

ID,Value1,Value2
1,3,12
1,4,13
1,5,14
1,6,15
1,7,16
2,8,17
2,9,18
2,10,19
2,11,20

我想用这种方式 reshape 。

ID 
1 Index(Extra Column) Value1, value2
1 3 12
2 4 13
3 5 14
4 6 15
5 7 16

2
1 8 17
2 9 18
3 10 19
4 11 20

我试过了

df1 = pd.DataFrame(df[['Value1', 'Value2']], index= df['ID']).stack()

df1 = df.set_index(['ID']).stack()

这会将 Value1 和 Value2 从列更改为我不想要的行。

有什么想法吗?

最佳答案

我建议 set_index + cumcount 这里:

df.set_index(['ID', df.groupby('ID').cumcount() + 1])

Value1 Value2
ID
1 1 3 12
2 4 13
3 5 14
4 6 15
5 7 16
2 1 8 17
2 9 18
3 10 19
4 11 20

另一个选项是使用 concat:

pd.concat({k : g.reset_index(drop=True) for k, g in df.drop('ID', 1).groupby(df.ID)})

Value1 Value2
1 0 3 12
1 4 13
2 5 14
3 6 15
4 7 16
2 0 8 17
1 9 18
2 10 19
3 11 20

关于python - Pandas Dataframe 用 stack 和 unstack reshape ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778334/

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