加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将列转换为pandas数据帧中的多行

发布时间:2020-12-20 11:04:15 所属栏目:Python 来源:网络整理
导读:我有一个看起来像这样的Dataframe: Deal Year Quarter_1 Quarter_2 Quarter_3 Financial_Datah 1 1991 1 2 3 120i 2 1992 4 5 6 80j 3 1993 7 8 9 100 我想将所有季度合并为一个新列,并复制交易编号,年份和财务数据.最终结果应如下所示: Deal Year Quarter
我有一个看起来像这样的Dataframe:

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

解决方法

你可以使用融化方法.

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()方法来满足您的要求.

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

声明将成为

df = pd.melt(d,id_vars=id_vars_list,axis=1).sort_values('Quarter')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读