You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中基于DataFrame的DateTime列添加英土年度通胀列

问题

我有一个包含DateTime列的DataFrame,希望根据DateTime列中的年份添加Yearly Inflation Rate of UK和Yearly Inflation Rate of Turkey两列。

输入示例:

DateTime
14.08.2014
15.07.2015
16.06.2016

期望输出:

DateTimeInflation of UKInflation of Turkey
14.08.20142.368.85
15.07.20150.377.67
16.06.20161.017.78
实现步骤

1. 导入依赖并创建示例DataFrame

确保已安装pandas,导入后创建测试用DataFrame:

import pandas as pd

# 创建输入DataFrame
df = pd.DataFrame({
    'DateTime': ['14.08.2014', '15.07.2015', '16.06.2016']
})

2. 解析日期并提取年份

将DateTime列转换为日期格式,提取年份作为临时列:

# 按DD.MM.YYYY格式解析日期
df['DateTime'] = pd.to_datetime(df['DateTime'], format='%d.%m.%Y')
# 提取年份
df['Year'] = df['DateTime'].dt.year

3. 定义年度通胀率映射表

用字典存储对应年份的两国通胀率:

inflation_rates = {
    2014: {'UK': 2.36, 'Turkey': 8.85},
    2015: {'UK': 0.37, 'Turkey': 7.67},
    2016: {'UK': 1.01, 'Turkey': 7.78}
}

4. 映射通胀率到DataFrame

通过map方法将年份对应到通胀率,生成新列:

# 添加英国通胀率列
df['Inflation of UK'] = df['Year'].map(lambda x: inflation_rates[x]['UK'])
# 添加土耳其通胀率列
df['Inflation of Turkey'] = df['Year'].map(lambda x: inflation_rates[x]['Turkey'])
# 删除临时Year列
df = df.drop('Year', axis=1)

5. 保持原始日期格式(可选)

如果需要让DateTime列回到输入时的字符串格式,执行:

df['DateTime'] = df['DateTime'].dt.strftime('%d.%m.%Y')

最终打印结果即可得到期望的输出:

print(df)

输出示例:

DateTime  Inflation of UK  Inflation of Turkey
0  14.08.2014             2.36                 8.85
1  15.07.2015             0.37                 7.67
2  16.06.2016             1.01                 7.78

内容的提问来源于stack exchange,提问作者Orhan Dağ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:45:34