pandas创建DataFrame报All arrays must be of the same length错误解决
报错触发原因
pandas构造DataFrame时强制要求所有传入列的序列长度一致,你当前代码中name列对应的列表长度为2,work_type列对应的列表长度为4,长度不匹配就会抛出ValueError: All arrays must be of the same length错误。
可选择的修正方式
根据你的实际数据需求选对应方案即可:
- 补全短列长度:如果
work_type列的4个值都是有效数据,给name列补全对应长度,空缺位置填充np.nan,修正后代码:
import numpy as np import pandas as pd dataset = pd.DataFrame({ 'name':['work_type', np.nan, np.nan, np.nan], 'work_type':['Private', 'Self-employed', 'Govt_job', np.nan] })
- 裁剪长列长度:如果
name列的2个值是完整数据,把work_type列多余的冗余值删掉,保证两列长度一致,修正后代码:
import numpy as np import pandas as pd dataset = pd.DataFrame({ 'name':['work_type', np.nan], 'work_type':['Private', 'Self-employed'] })
- 自动对齐填充(适用于pandas 1.4.0及以上版本):构造时显式传入
index参数指定最终DataFrame的行索引,pandas会自动按索引匹配各列数据,缺失位置自动填充NaN,不需要手动修改列表长度,示例代码:
import numpy as np import pandas as pd dataset = pd.DataFrame( { 'name':['work_type', np.nan], 'work_type':['Private', 'Self-employed', 'Govt_job', np.nan] }, index=[0, 1, 2, 3] )
注意:自动对齐规则是各列从索引0开始依次匹配,超出原序列长度的位置统一填充缺失值。
内容的提问来源于stack exchange,提问作者Foreverami
相关产品推荐
相关产品推荐

