熊猫:nan->无

时间:2018-01-25 22:50:14

标签: python python-2.7 pandas nan

pandas.DataFrame.to_dictCharArray(N, {i -> '*'}).joinToString(separator="") 转换为nan,将nan转换为null。如Python comparison ignoring nan中所述,这有时不是最理想的。

有没有办法将所有None转换为nan? (在None或稍后在Python中)

,例如,

pandas

我想要

>>> df = pd.DataFrame({"a":[1,None],"b":[None,"foo"]})
>>> df
     a     b
0  1.0  None
1  NaN   foo
>>> df.to_dict()
{'a': {0: 1.0, 1: nan}, 'b': {0: None, 1: 'foo'}}

代替。

2 个答案:

答案 0 :(得分:6)

import pandas as pd

df = pd.DataFrame({"a":[1,None],"b":[None,"foo"]})
df.where((pd.notnull(df)), None)
Out[850]: 
      a     b
0     1  None
1  None   foo
df.where((pd.notnull(df)), None).to_dict()
Out[851]: {'a': {0: 1.0, 1: None}, 'b': {0: None, 1: 'foo'}}

答案 1 :(得分:3)

初始化为对象DataFrame(处于危险之中......):

df = pd.DataFrame({"a":[1,None],"b":[None,"foo"]}, dtype=object)    
df

      a     b
0     1  None
1  None   foo

在第一列中,pandas尝试推断dtype,并猜测浮动。您可以通过强制它保持object来阻止它,从而完全抑制任何类型的转换。