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版本并检查

发现与您的问题相关的问题