Pandas拆分DataFrame列时split函数报expand参数无效如何解决
解决方案
你遇到的报错是因为Python原生的str.split()方法不支持expand参数,该参数是Pandas为Series.str.split()提供的专属参数,你通过apply调用原生字符串split方法时传入expand自然会触发参数非法错误。
另外你的原始ACT列带有['、']等多余符号,拆分前需要先清洗。
完整实现代码
写法1(简洁版)
import pandas as pd # 1. 清洗ACT列多余符号,拆分后直接重索引补全4列,空值填充为'na' act_split = df['ACT'].str.strip("[]'").str.split(',', expand=True).reindex(columns=[0,1,2,3], fill_value='na') # 2. 重命名拆分后的列 act_split.columns = ['step1', 'step2', 'step3', 'step4'] # 3. 合并原表的MID、C_PG列得到最终结果 res_df = pd.concat([df[['MID', 'C_PG']], act_split], axis=1)
特殊情况处理
如果你的ACT列是实际的列表类型(而非字符串格式的列表),将第一步的清洗逻辑修改为取列表第一个元素即可:
act_split = df['ACT'].str[0].str.split(',', expand=True).reindex(columns=[0,1,2,3], fill_value='na')
内容的提问来源于stack exchange,提问作者peace
相关产品推荐
相关产品推荐

