如何将Pandas DataFrame中含键值对的Series列拆分为多个新列
实现方案
直接按以下步骤写代码即可:
- 先定义单行键值对字符串的解析函数,处理NaN和正常字符串的拆分逻辑
- 对目标列应用解析函数,将每行转换为字典后再展开为独立的DataFrame
- 将展开后的DataFrame和原数据(删除原键值对列)做横向合并
完整可运行代码
import pandas as pd # 假设你的原始DataFrame变量名为df def parse_kv_line(line): if pd.isna(line): return {} # 按换行拆分,过滤空内容、去除前后多余空格 kv_pairs = [p.strip() for p in line.split('\n') if p.strip()] res = {} for p in kv_pairs: # 仅按第一个等号拆分,避免值本身包含等号时拆分错误 k, v = p.split('=', maxsplit=1) res[k.strip()] = v.strip() return res # 解析目标列并展开为新的DataFrame new_cols = df['column 2'].apply(parse_kv_line).apply(pd.Series) # 合并结果,删除原第二列 final_df = pd.concat([df.drop(columns=['column 2']), new_cols], axis=1)
额外说明
如果你的数据中键值对的分隔符不是固定的等号、或者存在其他格式异常,只需要调整parse_kv_line内的拆分逻辑即可,整体流程不需要修改。
内容的提问来源于stack exchange,提问作者Davio
相关产品推荐
相关产品推荐

