2017-07-29 54 views
0

我加載CSV與檔案:負載(字符串和尼爾斯)爲字符串

converters = { 
    ... 
    col1: str, 
    ... 
} 

prop = pd.read_csv(
    'input/properties_2016.csv', 
    dtype=types, 
    converters=converters, 
) 

該列的數據是這樣的:

'acura',123 
'ford',234 
'dodge',345 
,567 

所以第四個產品解釋爲N/A值。

我希望該列作爲字符串加載。我認爲字符串比對象更好,因爲我是新手,我很容易說「如果它是一個你沒有做到的對象,那麼請修復你輸入該列的方式。」


但後來當我檢查柱:

prop.dtypes['col1'] 

類型是object

我期待的NA值轉換爲字符串,因爲:

str(None) 

不會返回

'None' 

那麼,如何使這個進口作爲一個字符串?

回答

4

熊貓設置一系列字符串的dtype爲object,這樣 字符串可以是可變寬度的。所以就我所知,你已經做好了一切。

如果您的數據與顯示的相似,您甚至可以刪除dtype參數 - pd.read_csv將自動檢測到正確的dtype。除了使用converters參數,你可以使用keep_default_na=Falsethanks to Mitch這個建議):

prop = pd.read_csv('input/properties_2016.csv', header=None, keep_default_na=False) 

產生

  0 1 
0 'acura' 123 
1 'ford' 234 
2 'dodge' 345 
3   567 

PS:使用converters避免,如果你能 - 轉換函數應用於每個值在單獨的列中,所以如果你的CSV很大,這相當於大量的函數調用,這可能會顯着減慢解析速度。