我有一个pandas的数据框,其中每个单元格都包含一个Python字典。
>>> data = {'Q':{'X':{2:2010}, 'Y':{2:2011, 3:2009}},'R':{'X':{1:2013}}}
>>> frame = DataFrame(data)
>>> frame
Q R
X {2: 2010} {1: 2013}
Y {2: 2011, 3: 2009} NaN
我想用一个空字典来替换NaN,以得到这个结果: Q R
X {2: 2010} {1: 2013}
Y {2: 2011, 3: 2009} {}
然而,由于fillna
函数将空字典解释为列->值映射而不是标量值,如果我仅仅这样做,它什么也不会做(也就是说,它不起作用):
>>> frame.fillna(inplace=True, value={})
Q R
X {2: 2010} {1: 2013}
Y {2: 2011, 3: 2009} NaN
有没有办法使用 fillna
来实现我想要的功能?我是否必须遍历整个 DataFrame 或构建一个傻傻的字典,将所有列映射到空字典?