Python concat后熊猫无到NaN:bug还是故意行为?
我有这样一个初始数据帧:Python concat后熊猫无到NaN:bug还是故意行为?,python,pandas,Python,Pandas,我有这样一个初始数据帧: d = pd.DataFrame({"value":(None,)}) 如果在其上使用pd.concat,则生成的数据帧将None转换为NaN: In [14]: pd.concat([d], axis=0, ignore_index=True) Out[14]: value 0 NaN 如果数据框中有混合文本/无,则不会发生这种情况: In [15]: d2 = pd.DataFrame({"value":("a", None)}) In [16]: p
d = pd.DataFrame({"value":(None,)})
如果在其上使用pd.concat
,则生成的数据帧将None
转换为NaN
:
In [14]: pd.concat([d], axis=0, ignore_index=True)
Out[14]:
value
0 NaN
如果数据框中有混合文本/无
,则不会发生这种情况:
In [15]: d2 = pd.DataFrame({"value":("a", None)})
In [16]: pd.concat([d2], axis=0, ignore_index=True)
Out[16]:
value
0 a
1 None
我很难理解这种行为。这是一个bug,还是背后有什么特殊的原因?我认为这是一个bug。以下是解决方法:
import numpy as np
...
d2 = d2.apply(lambda v: v if v is not None else np.nan)
似乎这是旧版熊猫中的一个bug 您使用的是哪种版本的熊猫 我使用的是pandas 0.20.3,数据帧值None保持不变,在运行代码时未转换为NaN 尝试升级您的pandas版本并检查 发现与您的问题相关的问题