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

如何基于Pandas DataFrame现有列值循环添加指定命名新列?

解决方案

你可以通过f-string格式化列名结合循环遍历Numbers列的值来实现需求,以下是具体代码示例:

基础实现

import pandas as pd

# 创建初始DataFrame
my_list = [123, 456, 789]
my_df = pd.DataFrame(my_list, columns=['Numbers'])

# 遍历Numbers列的每个值,添加新列
for num in my_df['Numbers']:
    # 生成带后缀的列名
    new_col_name = f'test_{num}'
    # 执行自定义计算(这里示例为Numbers列值与当前num的乘积,可替换为你的计算逻辑)
    my_df[new_col_name] = my_df['Numbers'] * num

执行后得到的DataFrame结构如下:

Numbers  test_123  test_456  test_789
0      123     15129     56088     97047
1      456     56088    207936    359844
2      789     97047    359844    622521

关键说明

  • 列名格式化:使用f'test_{num}'可以快速拼接固定前缀test_和数值后缀,确保列名符合要求。
  • 动态添加列:直接通过my_df[new_col_name] = 计算结果即可在DataFrame中创建新列,Pandas会自动完成列的初始化和数据填充。
  • 自定义计算逻辑:将示例中的my_df['Numbers'] * num替换为你需要的计算逻辑即可,比如my_df['Numbers'] + num、my_df['Numbers'] ** 2 + num等。

处理重复值场景

如果Numbers列存在重复值,不想重复创建相同列,可以先获取唯一值再循环:

for num in my_df['Numbers'].unique():
    new_col_name = f'test_{num}'
    my_df[new_col_name] = my_df['Numbers'] * num

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 05:12:44