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

如何基于现有DataFrame列创建含Year列的新Pandas DataFrame

解决方法:给合并后的DataFrame添加Year列

嘿,你已经走对路啦!用pd.concat合并多个DataFrame的W列这步没问题,现在只需要把Year列加进去就行——不管是合并2个还是3个DF,方法都是通用的。我给你分两种常见情况说明:

情况1:原DF1/DF2/DF3本身都有Year列

如果每个原始DataFrame里都包含Year列,而且它们的Year值是一一对应的(比如索引一致,或者每行的年份完全匹配),那直接从任意一个DF里提取Year列添加到合并后的结果里就行:

# 先完成你已经做的合并操作
combined_w = pd.concat([DF1['W'], DF2['W'], DF3['W']], axis=1, keys=['DF1', 'DF2','DF3'])

# 方法1:用assign()添加Year列(推荐,不会修改原合并对象)
newDF = combined_w.assign(Year=DF1['Year'])

# 方法2:直接列赋值(会修改combined_w,不需要保留原合并结果时可用)
combined_w['Year'] = DF1['Year']
newDF = combined_w

情况2:Year是独立的外部数据

如果Year列是单独的列表、数组或者Series(比如你有一个单独维护的年份序列),直接赋值给新列就行,只要确保数据长度和合并后的DataFrame行数一致:

# 假设你的年份数据是这样的(长度要和combined_w的行数匹配)
year_series = pd.Series([2018, 2019, 2020, 2021])

combined_w = pd.concat([DF1['W'], DF2['W'], DF3['W']], axis=1, keys=['DF1', 'DF2','DF3'])
newDF = combined_w.assign(Year=year_series)

小提醒

  • 一定要保证Year列的行数/长度和合并后的combined_w完全一致,不然会出现NaN值或者报错。
  • 如果原始DF的索引不一致,建议先给每个DF重置索引(df.reset_index(drop=True)),再做合并和添加Year列的操作,避免索引不匹配导致的问题。

内容的提问来源于stack exchange,提问作者Chinmay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:09:40