如何将Pandas DataFrame中解析后的Series列拆分为独立列?
解决方案
方法一:批量转换合并(效率更高)
适合一次性提取所有字段,代码简洁高效:
import pandas as pd # 假设原始DataFrame名为df # 将parsed列的Series集合转为新DataFrame parsed_data = pd.DataFrame(df['parsed'].tolist()) # 重命名列名匹配需求 parsed_data = parsed_data.rename(columns={ 'house': 'hno', 'street name': 'street', 'postcode': 'postcode' }) # 合并原始DataFrame(移除parsed列)和新字段列 final_df = pd.concat([df.drop('parsed', axis=1), parsed_data], axis=1)
方法二:逐列提取(更直观)
如果想清晰看到每一步的字段提取过程,可以用apply逐个生成新列:
# 从parsed列的每个Series中提取对应字段 df['hno'] = df['parsed'].apply(lambda x: x['house']) df['street'] = df['parsed'].apply(lambda x: x['street name']) df['postcode'] = df['parsed'].apply(lambda x: x['postcode']) # 移除不再需要的parsed列 df = df.drop('parsed', axis=1)
效果验证
运行任意一种方法后,你的DataFrame都会生成hno、street、postcode三列,完全匹配你给出的示例效果。
内容的提问来源于stack exchange,提问作者vpat
相关产品推荐
相关产品推荐

