pandas - 如何将两列或多列附加到同一数据框中的一列
问题描述
你好堆栈溢出社区!
我这里有一个示例数据框
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
所以我必须将列名转换为月份值并附加到数据框。我只尝试了一个月的专栏。但试图将每个月的值附加到新列。
谁能帮我这个?
提前致谢!
解决方案
好的,我有一个解决方案给你。假设您的数据框称为 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
推荐阅读
- node.js - 如何在googleapi上禁用检查重定向网址?
- laravel - AWS AppSync 与 Laravel 的正确集成?
- c++ - 如何为包含另一个类的类编写构造函数?
- html - 如何从 Json 创建 HTML 表单
- python - Django 管理员在更改列表中显示错误的 list_display
- java - 如何在 iText5 中绘制圆形阴影
- c# - 如何修复错误 404 找不到与名为“get”的控制器匹配的类型。”
- quickblox - 如何在聊天消息 Quickblox Android App 中将视频作为附件发送?
- c# - 将 .Netcore IHostedService 作为控制台应用程序关闭
- java - HashMap 中的键条目为空字符串或 null