pandas使用explode方法时如何禁止指定列(如description)被展开
解决方案
你可以直接使用pandas内置的DataFrame.explode()方法,显式指定需要展开的列,其余列会自动保留原始值不会被展开,代码实现更简洁可控:
import pandas as pd # 原有拆分price、weight列的逻辑保持不变 data['price'] = data['price'].str.split(',') data['weight'] = data['weight'].str.split(',') # 仅对指定的price、weight列执行展开操作,其余列自动保留原值 data = data.explode(['price', 'weight'], ignore_index=True)
原代码问题说明
你之前采用set_index+apply explode的写法,如果你把description从索引参数中移除,它会作为普通列被纳入apply(pd.Series.explode)的处理范围:如果该列是可迭代的列表结构就会被展开,就算不是列表结构,这种写法也存在误操作其他列的风险,直接使用指定列的explode是更符合需求的实现方式。
内容的提问来源于stack exchange,提问作者Farhan
相关产品推荐
相关产品推荐

