如何用Pandas为CSV缺失的前两列添加列名?
解决Pandas为CSV前两列添加列名的问题
方法一:读取CSV时直接指定完整列名
这是最直接的方式,在读取阶段就定义好所有列名,避免后续修改的麻烦:
import pandas as pd # 定义包含前两列自定义名称的完整列名列表 full_columns = ['Dataset', 'Measure', 'MedKD', 'AvgKD', 'Q', 'AKD', 'PKD(.2)', 'GPKD(.2)', 'FS'] # 读取CSV,指定header=0表示第一行为原列名行,并用names参数替换为自定义列名 df = pd.read_csv('your_file.csv', header=0, names=full_columns)
方法二:已读取DataFrame后修改列名
如果已经将CSV读取为DataFrame,可通过以下两种方式修改前两列名称:
方式1:直接替换整个列名列表
直接重新赋值完整的列名列表,确保长度与DataFrame的列数一致:
df.columns = ['Dataset', 'Measure', 'MedKD', 'AvgKD', 'Q', 'AKD', 'PKD(.2)', 'GPKD(.2)', 'FS']
方式2:仅重命名前两列
通过rename方法精准修改前两列的名称,不影响其他列:
# 获取前两列当前的列名(可能是Unnamed: 0、Unnamed:1或整数索引) df.rename(columns={ df.columns[0]: 'Dataset', df.columns[1]: 'Measure' }, inplace=True)
说明
你之前操作导致列右移,大概率是因为新列名列表的长度与原DataFrame列数不匹配。比如如果读取时错误地将第一行识别为数据而非列名,会导致原列名是默认的整数索引,此时需要确保新列名列表长度与列数完全一致。
内容的提问来源于stack exchange,提问作者user6346482
相关产品推荐
相关产品推荐

