gpt4 book ai didi

python - 通过 Pandas 中两行的值将行转换为列

转载 作者:太空狗 更新时间:2023-10-30 00:42:37 25 4
gpt4 key购买 nike

我有一个大型数据集,它有两列 Name, Value,它看起来像这样:

import pandas as pd
data = [['code',10],['classe',12],['series','B'], ['code',12],['classe',1],
['series','C'],['code',16],['classe',18],['series','A']]
df1 = pd.DataFrame(data,columns=['Name','Value'])
df1

输出

    Name    Value
0 code 10
1 classe 12
2 series B
3 code 12
4 classe 1
5 series C
6 code 16
7 classe 18
8 series A

我想要这样的东西:

    code  classe series
0 10 10 B
1 12 1 C
2 16 18 A

在我的数据集中,它重复了 N 次,我想将其转换为三列 code, classe, series

提前感谢您的帮助!

最佳答案

您可以使用 .pivot 完成此操作

df2 = df1.pivot(columns='Name', values='Value')
pd.concat([df2[series].dropna().reset_index(drop=True) for series in df2], axis=1)

输出

  classe    code    series
0 12 10 B
1 1 12 C
2 18 16 A

更重要的是,如果您更改了有序数据,您仍然会得到所需的输出:

import pandas as pd
data = [['code',10],['classe',12],['classe', 14], ['series','B'], ['series', 'C'], ['code',12],['classe',1],
['series','C'],['code',16],['classe',18],['series','A']]
df1 = pd.DataFrame(data,columns=['Name','Value'])
df1

Name Value
0 code 10
1 classe 12
2 classe 14 #Added classe
3 series B
4 series C #Added Series
5 code 12
6 classe 1
7 series C
8 code 16
9 classe 18
10 series A

输出将是:

   classe   code    series
0 12 10 B
1 14 12 C
2 1 16 C
3 18 NaN A

关于python - 通过 Pandas 中两行的值将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49944501/

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