首页 > 解决方案 > 如何将两列或多列附加到同一数据框中的一列

问题描述

你好堆栈溢出社区!

我这里有一个示例数据框

code      Sum_of_August    Sum_of_September   Sum_of_October
 CC           1000               2000              3000
 AA           9000               8000              6000
 

列名 ['Sum_of_August', 'Sum_of_september','Sum of October'] 也可以像 ['August Sales', 'September Sales', 'October Sales']。

我必须修改为以下数据框

code      Monthly_target       month      
 CC           1000               8
 AA           9000               8
 CC           2000               9
 AA           8000               9
 CC           3000               10
 AA           6000               10

所以我必须将列名转换为月份值并附加到数据框。我只尝试了一个月的专栏。但试图将每个月的值附加到新列。

谁能帮我这个?

提前致谢!

标签: pandasdataframe

解决方案


好的,我有一个解决方案给你。假设您的数据框称为 df。

month = {1:'janauary',
2:'february',
3:'march',
4:'april',
5:'may',
6:'june',
7:'july',
8:'august',
9:'september',
10:'october',
11:'november',
12:'december'}

df=df.melt(id_vars='code')

def month_number(x):
    for i in month:
        if month[i] in x.lower():
            return(i)

df['variable']=df['variable'].apply(month_number)

print(df)

  code  variable  value
0   CC         8   1000
1   AA         8   9000
2   CC         9   2000
3   AA         9   8000
4   CC        10   3000
5   AA        10   6000

推荐阅读