如何将pandas dataframe中的元组字段拆分为多个独立的列?
问题原因
你编写的循环逻辑存在问题:每次遍历行时,你直接对MatchedNameFinal、MatchedNameScore两个整列赋值,每一轮循环都会覆盖上一轮的全列值,最终所有行的取值都会和循环最后一次处理的行完全一致。
正确解决方案
优先使用pandas矢量化操作,避免循环,性能更高也更不容易出错:
# 直接通过str访问器拆分嵌套元组的对应字段 matched['MatchedNameFinal'] = matched['key'].str[0].str[0] matched['MatchedNameScore'] = matched['key'].str[0].str[1]
如果你确实需要用循环实现,需要按行定位赋值,不要直接修改整列:
for i, v in enumerate(matched['key']): matched.loc[i, 'MatchedNameFinal'] = v[0][0] matched.loc[i, 'MatchedNameScore'] = v[0][1]
内容的提问来源于stack exchange,提问作者user13150405
相关产品推荐
相关产品推荐

