如何自动合并DataFrame指定列后的所有列并删除原列?
自动化合并DataFrame指定列后的所有列
需求说明
从CSV加载的DataFrame中,需自动合并ForeignAdress列之后的所有列,生成CombinedCol列,最终仅保留Proto、LocalAddress、ForeignAdress和CombinedCol四列,替代手动拼接删除列的繁琐操作。
解决方案代码
import pandas as pd # 从CSV加载数据到DataFrame ps = pd.read_csv("your_input.csv") # 定位ForeignAdress列,获取其后所有需要合并的列 merge_columns = ps.columns[ps.columns.get_loc("ForeignAdress") + 1:] # 逐行合并列值,用空格分隔,自动跳过空值 ps["CombinedCol"] = ps[merge_columns].apply( lambda row: " ".join(str(val) for val in row if pd.notna(val)), axis=1 ) # 筛选保留目标列 final_df = ps[["Proto", "LocalAddress", "ForeignAdress", "CombinedCol"]] # 可选:保存结果到CSV # final_df.to_csv("output.csv", index=False)
代码说明
- 自动识别合并列:通过
ps.columns.get_loc("ForeignAdress")获取目标列的索引,动态确定后续所有需要合并的列,不管列数是3列还是8列都能适配 - 灵活合并处理:使用
apply逐行处理,将列值转为字符串后用空格连接,同时过滤空值避免出现多余空格 - 快速生成目标结构:直接通过列名筛选保留需要的四列,一步得到预期的DataFrame结构
内容的提问来源于stack exchange,提问作者Zarif Rahman
相关产品推荐
相关产品推荐

