我有一个输入到列表的字符串字典,列表的长度可能不同。
d = {'b': [2,3], 'a': [1]}
当我这样做时:df = pd.DataFrame(data=d)
,
我看到 ValueError:数组的长度必须相同
问题:创建df时如何用默认值(例如0)填充缺失值?
创建df的原因是获得以下最终结果:
{'b': 3}
而3
是列表中所有数字的最大值。
答案 0 :(得分:3)
您可以使用DataFrame.from_dict
将orient
设置为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