Python pandas如何修改DataFrame列名并将原列名作为首行值保留
问题说明
现有列名为A的DataFrame:
A 0 B 1 C 2 D
需要将原列名A作为新列N的首个元素,原有数据顺延,得到如下结构:
N 0 A 1 B 2 C 3 D
直接使用df.columns = ['N']仅能修改现有列的列名,不会对列内元素做增改,无法实现插入首行元素的效果。
符合pandas规范的实现方法
方法1:小数据量简洁写法
直接拼接原列名和列内值构造新DataFrame,可读性最高:
import pandas as pd # 转换逻辑 new_df = pd.DataFrame({ 'N': [df.columns[0]] + df['A'].tolist() })
方法2:大数据量高性能写法
用pd.concat拼接序列,避免将整列数据转为Python原生列表带来的性能损耗,更适配大规模数据集:
new_df = pd.concat( [pd.Series(df.columns[0], name='N'), df['A'].rename('N')], ignore_index=True ).to_frame()
两种写法执行后得到的结果完全匹配目标结构,均符合pandas官方编码规范。
内容的提问来源于stack exchange,提问作者Константин Прудников
相关产品推荐
相关产品推荐

