如何基于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
相关产品推荐
相关产品推荐

