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

如何在Pandas DataFrame中从现有列创建新列?(实例演示)

嘿,这个需求其实超级简单,用Pandas的几种基础操作就能轻松实现,下面给你分享几个常用的方法:

方法一:直接列赋值(最直观易懂)

这是最直接的方式,你只需要通过列名直接给DataFrame添加新列,把原列的值直接赋值过去就行,完全不用担心行的对应问题——Pandas会自动帮你对齐索引。

代码示例:

import pandas as pd

# 先构造你的原始DataFrame
df = pd.DataFrame({
    '2019Q4': [20, 56, 63],
    '2020Q4': [10, 15, 14]
})

# 新增目标列
df['year2019'] = df['2019Q4']
df['year2020'] = df['2020Q4']

# 打印结果
print(df)

方法二:使用assign()方法(链式操作友好)

如果你习惯用链式调用的写法,或者想保留原始DataFrame不被修改,assign()方法会是个不错的选择,它可以一次性创建多个新列并返回一个新的DataFrame。

代码示例:

# 生成带新列的新DataFrame(原df保持不变)
new_df = df.assign(
    year2019=df['2019Q4'],
    year2020=df['2020Q4']
)

# 如果不需要保留原df,也可以直接覆盖
# df = df.assign(year2019=df['2019Q4'], year2020=df['2020Q4'])

方法三:批量处理(适合多列场景)

如果你的DataFrame里有很多类似YYYYQN格式的列,不想手动一个个写赋值语句,可以用循环批量生成新列,效率更高:

代码示例:

for col in df.columns:
    # 提取列名里的年份部分(前4位)
    year_part = col[:4]
    # 构造新列名
    new_col_name = f'year{year_part}'
    # 赋值新列
    df[new_col_name] = df[col]

运行任意一种方法后,你都会得到想要的结果:

2019Q42020Q4year2019year2020
020102010
156155615
263146314

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:32:28