Pandas拆分Select Investors列报错求助:Columns must be same length as key
解决拆分投资者列时的ValueError问题
错误原因很明确:你指定了3个目标列(tier1/tier2/tier3),但str.split(',', expand=True)拆分后生成的列数和这3个列的数量不匹配——部分公司的投资者数量多于3个,拆分后列数超过3;有的少于3个,列数不足,导致赋值时长度不匹配触发报错。
两种解决方式:
自动适配所有投资者列
先计算拆分后最多有多少个投资者,再生成对应数量的列名,确保完全匹配:# 计算单条数据拆分后的最大投资者数量 max_investor_count = df_worldunicorns['Select Investors'].str.split(',').str.len().max() # 生成对应列名,比如investor1、investor2... investor_columns = [f'investor{i+1}' for i in range(max_investor_count)] # 拆分并赋值 df_worldunicorns[investor_columns] = df_worldunicorns['Select Investors'].str.split(',', expand=True)只保留前3个投资者
如果只需要前3个投资者,给str.split()加n=2参数限制拆分次数,这样最多拆成3列,不足的自动补NaN:df_worldunicorns[['tier1','tier2','tier3']] = df_worldunicorns['Select Investors'].str.split(',', n=2, expand=True)
额外提示:拆分后建议清理投资者名字前后的空格,避免数据混乱:
# 拆分同时清理每个投资者名字的前后空格 df_worldunicorns[investor_columns] = df_worldunicorns['Select Investors'].str.split(',', expand=True).apply(lambda x: x.str.strip())
内容的提问来源于stack exchange,提问作者pynewbee
相关产品推荐
相关产品推荐

