我有一個帶有混合數據類型的pandas DataFrame。我想用None替換所有的空值(而不是默認的np.nan)。出於某種原因,這似乎幾乎不可能。使用None而不是np.nan作爲pandas中的空值DataFrame
實際上,我的DataFrame是從csv讀入的,但這裏有一個簡單的DataFrame,它具有混合的數據類型來說明我的問題。
df = pd.DataFrame(index=[0], columns=range(5))
df.iloc[0] = [1, 'two', np.nan, 3, 4]
我不能這樣做:
>>> df.fillna(None)
ValueError: must specify a fill method or value
也不:
>>> df[df.isnull()] = None
TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
也不:
>>> df.replace(np.nan, None)
TypeError: cannot replace [nan] with method pad on a DataFrame
我曾經有隻字符串值的數據幀,所以我可以這樣做:
>>> df[df == ""] = None
哪些工作。但是現在我混合了數據類型,這是不行的。
由於我的代碼的各種原因,這將有助於能夠使用None作爲我的空值。有沒有辦法可以將null值設置爲None?或者我只需回顧其他代碼,並確保我在任何地方都使用np.isnan或pd.isnull?
'DF [df.isnull()] = None' - 工作正常,我(大熊貓0.18。 1) – MaxU