python - 如何使用正则表达式和熊猫创建月份和年份列
问题描述
你好堆栈溢出社区
我在这里有数据框
code sum of August
AA 1000
BB 4000
CC 72262
所以有两列 ['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
因此 ['sum of August'] 列有时仅命名为 ['August'] 或 ['august']。有时,它可以是 ['sum of November'] 或 ['November'] 或 ['november']。
我想过使用正则表达式来提取月份名称并转换为月份编号。
谁能帮我解决这个问题?
提前致谢!
解决方案
您可以执行以下操作:
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['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
这意味着如果某个月份的名称以任何方式存在于列名称中,则返回该月份的编号。
推荐阅读
- javascript - 在嵌套类中访问“上层类”方法的好方法?
- ruby-on-rails - Factory_bot,如何在孩子既属于父母又属于父母的关系中重用父工厂?
- python - 使 Pyqt 按钮在鼠标按下而不是鼠标按下时运行功能
- python - 学习继承时的意外结果
- kubernetes - 如何通过 Kubernetes 中的部署仅在执行约 10 分钟后完成后运行容器
- php - 如何在 WooCommerce 中添加 cmb2 设置
- batch-file - set /p empty answer 即使有引号也会崩溃(非常奇怪的行为)(Windows 上的批处理)
- c# - XPathSelectElement 捕获空引用异常
- python - `pd.concat` 与 `join=='inner'` 不会产生 pandas 数据帧的交集
- javascript - Firebase 使用 uid 获取用户个人资料图片