ast*_*boy 2 python datetime pandas
你好堆栈溢出社区
我这里有数据框
code sum of August
AA 1000
BB 4000
CC 72262
Run Code Online (Sandbox Code Playgroud)
所以有两列 ['code','sum of August']
我必须将此数据帧转换为 ['month', 'year', 'code', 'sum of August'] 列
month year code sum of August
8 2020 AA 1000
8 2020 BB 4000
8 2020 CC 72262
Run Code Online (Sandbox Code Playgroud)
所以 ['sum of August'] 列有时仅命名为 ['August'] 或 ['august']。有时,它可以是 ['11 月的总和'] 或 ['十一月'] 或 ['十一月']。
我想到了使用正则表达式来提取月份名称并转换为月份编号。
任何人都可以帮我解决这个问题吗?
提前致谢!
您可以执行以下操作:
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'}
Run Code Online (Sandbox Code Playgroud)
假设您的数据框名为df。然后,您可以使用以下内容自动创建列月份:
df['month']=[i for i,j in month.items() if j in str.lower(" ".join(df.columns))][0]
code sum of August month
0 AA 1000 8
1 BB 4000 8
2 CC 72262 8
Run Code Online (Sandbox Code Playgroud)
这意味着如果某个月份的名称以任何方式存在于列名称中,则返回该月份的编号。