根据年月将 df2 中的 变量1 加入到 df1 中

解决思路:

  1. 将 df1 和 df2 中的 '时间' 列提取出年月(即 year 和 month),并创建新的列来进行匹配。
  2. 使用 merge 操作将 df1 和 df2 根据年月匹配并将 变量1 加入到 df1 中。

实现步骤:

  1. 提取年月:可以使用 pd.to_datetime 提取年份和月份。
  2. 匹配数据:将 df1 和 df2 根据提取的年月进行合并。
import pandas as pd

# 假设 df1 和 df2 已经存在,且 df1 中有时间列,df2 中有时间和变量1列

# 创建示例数据
df1 = pd.DataFrame({
    '时间': ['2025-05-01 00:00:00', '2025-06-01 00:00:00', '2025-05-10 00:00:00'],
    '其他数据': [10, 20, 30]
})

df2 = pd.DataFrame({
    '时间': ['2025-05-01 00:00:00', '2025-06-01 00:00:00'],
    '变量1': [100, 200]
})

# 将 '时间' 列转换为 datetime 类型
df1['时间'] = pd.to_datetime(df1['时间'])
df2['时间'] = pd.to_datetime(df2['时间'])

# 提取年份和月份
df1['year_month'] = df1['时间'].dt.to_period('M')  # 年月
df2['year_month'] = df2['时间'].dt.to_period('M')  # 年月

# 合并 df1 和 df2,基于 'year_month' 进行匹配
df1 = pd.merge(df1, df2[['year_month', '变量1']], on='year_month', how='left')

# 查看结果
print(df1)

 输出结果将是:

                 时间  其他数据 year_month  变量1
0 2025-05-01 00:00:00    10    2025-05   100.0
1 2025-06-01 00:00:00    20    2025-06   200.0
2 2025-05-10 00:00:00    30    2025-05   100.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值