gpt4 book ai didi

python - 将列转换为 Pandas 数据框中的多行

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

我有一个看起来像这样的数据框:

   Deal  Year  Quarter_1  Quarter_2  Quarter_3  Financial_Data
h 1 1991 1 2 3 120
i 2 1992 4 5 6 80
j 3 1993 7 8 9 100

我想将所有季度合并到一个新列中,并复制交易编号、年份和财务数据。最终结果应该是这样的:

   Deal  Year  Quarter  Financial_Data
h 1 1991 1 120
i 1 1991 2 120
j 1 1991 3 120
k 2 1992 4 80
l 2 1992 5 80
m 2 1992 6 80
n 3 1993 7 100
o 3 1993 8 100
p 3 1993 9 100

最佳答案

你可以使用melt方法。

df = pd.melt(d, id_vars=["Deal", "Year", "Financial_Data"], 
value_name="Quarter").drop(['variable'],axis=1).sort_values('Quarter')

输出

   Deal  Year  Financial_Data  Quarter
0 1 1991 120 1
3 1 1991 120 2
6 1 1991 120 3
1 2 1992 80 4
4 2 1992 80 5
7 2 1992 80 6
2 3 1993 100 7
5 3 1993 100 8
8 3 1993 100 9

如果你有很多列,你可以使用df.columns.tolist()方法来达到你的要求。

column_list = df.columns.tolist()
id_vars_list = column_list[:2] + column_list[-1:]

语句会变成

df = pd.melt(d, id_vars=id_vars_list, 
value_name="Quarter").drop(['variable'],axis=1).sort_values('Quarter')

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

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