gpt4 book ai didi

python - Pandas 数据框重排堆栈到两个值列(用于因子图)

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:05 28 4
gpt4 key购买 nike

我一直在尝试重新排列我的数据框以将其用作因子图的输入。原始数据如下所示:

  A B C  D
1 0 1 2 "T"
2 1 2 3 "F"
3 2 1 0 "F"
4 1 0 2 "T"
...

我的问题是如何将它重新排列成这种形式:

  col val val2
1 A 0 "T"
1 B 1 "T"
1 C 2 "T"
2 A 1 "F"
...

我在尝试:

df = DF.cumsum(axis=0).stack().reset_index(name="val")

但是这只会产生一个值列而不是两个..感谢您的支持

最佳答案

我会用 melt,你可以随意排序

pd.melt(df.reset_index(),id_vars=['index','D'], value_vars=['A','B','C']).sort_values(by='index')
Out[40]:
index D variable value
0 1 T A 0
4 1 T B 1
8 1 T C 2
1 2 F A 1
5 2 F B 2
9 2 F C 3
2 3 F A 2
6 3 F B 1
10 3 F C 0
3 4 T A 1
7 4 T B 0
11 4 T C 2

那么显然你可以随意命名列

df.set_index('index').rename(columns={'D': 'col', 'variable': 'val2', 'value': 'val'})

关于python - Pandas 数据框重排堆栈到两个值列(用于因子图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918053/

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