Pandas如何按列位置将对应列的单元格填充为该列列名
Pandas按列位置索引填充列值为列名实现方案
需求说明
- 不通过硬编码列名的方式引用目标列,仅通过列的整数位置索引(从0开始计数)定位列
- 将定位到的列的所有单元格值,填充为该列自身的列名
- 本次示例目标列位置索引为2,代码中不得直接出现
col3这个列名字符串
原始测试数据构造
import pandas as pd data = {'col1': [1, 2], 'col2': [3, 4],'col3': [0,0]} df = pd.DataFrame(data) print(df)
初始DataFrame输出效果:
col1 col2 col3 0 1 3 0 1 2 4 0
实现代码
# 定义目标列的位置索引,可根据实际需求修改 target_col_index = 2 # 用iloc按位置选中所有行、目标位置的列,赋值为对应位置的列名 df.iloc[:, target_col_index] = df.columns[target_col_index] print(df)
最终效果
运行代码后输出的DataFrame如下,完全符合预期:
col1 col2 col3 0 1 3 col3 1 2 4 col3
关键逻辑说明
iloc是Pandas提供的纯整数位置索引方法,df.iloc[:, 位置]的写法可以在完全不依赖列名的前提下,选中指定位置的整列数据df.columns存储了DataFrame的全部列名,传入整数位置即可获取对应位置的列名,同样不需要硬编码列名- 直接对选中的整列赋值标量值,Pandas会自动将该列所有单元格填充为这个标量值
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

