我使用熊貓庫來讀取某些CSV數據。在我的數據中,某些列包含字符串。字符串"nan"
是一個可能的值,因爲它是一個空字符串。我設法讓熊貓讀取「nan」作爲字符串,但我無法弄清楚如何讓它讀取不爲NaN的空值。這裏的樣本數據,並輸出獲取pandas.read_csv讀取空值作爲空字符串而不是nan
One,Two,Three
a,1,one
b,2,two
,3,three
d,4,nan
e,5,five
nan,6,
g,7,seven
>>> pandas.read_csv('test.csv', na_values={'One': [], "Three": []})
One Two Three
0 a 1 one
1 b 2 two
2 NaN 3 three
3 d 4 nan
4 e 5 five
5 nan 6 NaN
6 g 7 seven
它正確地寫着「男」爲字符串「南」,但仍讀取空單元格作爲NaN的。我試着傳遞str
在converters
參數read_csv(與converters={'One': str})
)但它仍然讀取空單元格作爲NaN
我意識到我可以用fillna填充值後,但真的沒有辦法告訴熊貓一個特定的CSV列中的空單元格應閱讀爲空字符串代替NaN?
[DataFrame.fillna的文檔。](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html)嘗試'result.fillna('',inplace = True )'。否則它會創建數據幀的副本。 – osa
對於這樣一箇舊的答案感到遺憾,但這是否曾經發生過?據我所知,[這個GitHub PR](https:// github。com/pydata/pandas/pull/1522)它已經關閉而沒有被合併過,我在pandas版本0.14.x – drammock
[Documentation](http://pandas.pydata.org/pandas- docs/stable/generated/pandas.read_csv.html)現在提供'na_values'(按列索引的列表或詞典)和'keep_default_na'(布爾)。 'keep_default_na'值指示是否應該替換或追加熊貓的默認NA值。 OP的代碼目前不起作用,僅僅是因爲它缺少了這個標誌。對於這個例子,你可以使用'pandas.read_csv('test.csv',na_values = ['nan'],keep_default_na = False)'。 – delgadom