Pandas重命名列教程:为未命名列追加前一列名+序号实现列名唯一
Pandas未命名列自动重命名实现方法
核心逻辑是遍历所有列名,遇到以Unnamed:开头的未命名列时,用最近一个正常列名加递增序号作为新列名,保证所有列名唯一。
实现代码
import pandas as pd # 构造示例DataFrame,你可以替换成自己的DataFrame读取逻辑 df = pd.DataFrame( [["Active Scanning", "Scanning IP Blocks", "Acquire Infrastructure", "Botnet", "Drive-by Compromise", pd.NA]], columns=["Reconnaissance", "Unnamed: 1", "Resource Development", "Unnamed: 3", "Initial Access", "Unnamed: 5"] ) new_columns = [] last_valid_col = "" serial_num = 1 for col_name in df.columns: if not col_name.startswith("Unnamed:"): # 正常列名直接保留,更新基准列名,重置序号 new_columns.append(col_name) last_valid_col = col_name serial_num = 1 else: # 未命名列使用前一个基准列名加序号 new_columns.append(f"{last_valid_col}_{serial_num}") serial_num += 1 # 替换原DataFrame列名 df.columns = new_columns
效果验证
执行后输出df.columns即可看到列名已按照预期修改,和你给出的期望效果完全一致:
['Reconnaissance', 'Reconnaissance_1', 'Resource Development', 'Resource Development_1', 'Initial Access', 'Initial Access_1']
内容的提问来源于stack exchange,提问作者TiiTcHY
相关产品推荐
相关产品推荐

