gpt4 book ai didi

python - 创建保存列名和另一个数据框的相应值的 df

转载 作者:太空狗 更新时间:2023-10-30 02:15:08 24 4
gpt4 key购买 nike

我创建了以下名为 df

的数据框
       col1  col2  col3
0 4 5 2
1 5 2 4
2 3 10 3
3 6 2 2
4 3 2 4

我现在想要的是翻转行,使 df 看起来像这样:

         column_name  value
0 col1 4
1 col2 5
2 col3 2
3 col1 5
4 col2 2
5 col3 4
... ... ...

我想我需要使用 stack() ,但我不确定如何。我试过以下方法

df = df.stack().rename_axis(['column_name']).reset_index(name = 'value')

但是返回以下错误

raise ValueError('Length of names must match number of levels in '
ValueError: Length of names must match number of levels in MultiIndex.

问题:如何堆叠值以获得所需的数据框?

最佳答案

这里有必要使用 reset_index 删除 MultiIndex 的第一级使用 drop=True:

df = (df.stack()
.reset_index(level=0, drop=True)
.rename_axis(['column_name'])
.reset_index(name = 'value'))
print (df)
column_name value
0 col1 4
1 col2 5
2 col3 2
3 col1 5
4 col2 2
5 col3 4
6 col1 3
7 col2 10
8 col3 3
9 col1 6
10 col2 2
11 col3 2
12 col1 3
13 col2 2
14 col3 4

另一种解决方案是 melt ,值的顺序发生了变化:

df = df.melt(var_name='column_name')
print (df)
column_name value
0 col1 4
1 col1 5
2 col1 3
3 col1 6
4 col1 3
5 col2 5
6 col2 2
7 col2 10
8 col2 2
9 col2 2
10 col3 2
11 col3 4
12 col3 3
13 col3 2
14 col3 4

关于python - 创建保存列名和另一个数据框的相应值的 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52609848/

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