在Pandas中创建DataFrame时填充默认0

时间:2019-02-12 20:04:23

标签: python pandas dataframe

我有一个输入到列表的字符串字典,列表的长度可能不同。

d = {'b': [2,3], 'a': [1]}

当我这样做时:df = pd.DataFrame(data=d), 我看到 ValueError:数组的长度必须相同

问题:创建df时如何用默认值(例如0)填充缺失值?


创建df的原因是获得以下最终结果: {'b': 3}

3是列表中所有数字的最大值。

2 个答案:

答案 0 :(得分:3)

您可以使用DataFrame.from_dictorient设置为index,以便将字典的键用作索引,并将缺失值设置为NaN。然后只需使用.fillna填充NaNs并转置以将键设置为列:

pd.DataFrame.from_dict(d, orient='index').fillna(0).T

    b    a
0  2.0  1.0
1  3.0  0.0

答案 1 :(得分:0)

d = {'b': [2,3], 'a': [1]}
df = pd.DataFrame({ k:pd.Series(v) for k, v in d.items() })

这将给出以下输出。

a  b
0  1.0  2
1  NaN  3