2017-03-15 131 views
3

我一直在努力解决这个问题很长一段时间,我尝试了不同的方法。熊猫DataFrame替换NaT没有

我有一个简单数据帧如图所示,

enter image description here

我可以使用的代码替换NaNNone(不串 “无”),

[![dfTest2 = dfTest.where(pd.notnull(dfTest), None)][2]][2]

enter image description here

我支持NaT也被归类为“零”,因为下面 enter image description here

然而,NaT不与None取代。

我一直在寻找答案,但没有运气。任何人可以帮助?

预先感谢您。

+0

任何运气? – Cleb

+0

@Cleb,试过但不行不行。作为ValueError的异常:必须指定一个填充方法或值。似乎“无”是一种价值或方法。 – HaipengSu

+0

[这可能会有帮助(http://stackoverflow.com/questions/17097236/how-to-replace-values-with-none-in-pandas-data-frame-in-python)。 – Cleb

回答

4

请用`df.fillna(无)`的dtypeobject

dfTest2 = pd.DataFrame(dict(InvoiceDate=pd.to_datetime(['2017-06-01', pd.NaT]))) 

dfTest2.InvoiceDate.astype(object).where(dfTest2.InvoiceDate.notnull(), None) 

0 2017-06-01 00:00:00 
1     None 
Name: InvoiceDate, dtype: object 
+0

令人惊叹!非常感谢你。完全有道理,Timestamp类型给出了Null的默认NaT。 Thx再次。 – HaipengSu

+0

@HaipengSu很高兴我能帮上忙。如果您觉得合适,请不要忘记注册并选择所选答案。 – piRSquared

+0

绝对有帮助!!!!! – HaipengSu