我正在嘗試製作一個.csv文件,其格式既簡單易讀,也易於熊貓讀取。這意味着應該將列整齊分開,以便您可以輕鬆識別每個值屬於哪個列。問題是,填充空白區域在熊貓功能方面有一些縮減。到目前爲止,我得到了什麼是如何完全忽略csv中的空白與熊貓
work ,roughness ,unstab ,corr_c_w ,u_star ,c_star
us ,True ,True ,-0.39 ,0.35 ,-.99
wang ,False , ,-0.5 , ,
cheng , ,True , , ,
watanabe, , , ,0.15 ,-.80
如果我採取了上述的.csv所有的空格,並直接與pd.read_csv
讀它,它完美的作品。前兩列是布爾值,其他的是浮點數。但是,如果沒有空格,它是不可讀的。當我與
pd.read_csv('bibrev.csv', index_col=0)
看了上面的.csv這是行不通的,因爲所有的列,並認爲字符串包括,顯然,空格。當我使用
pd.read_csv('bibrev.csv', index_col=0, skipinitialspace=True)
那麼樣的作品,因爲花車讀爲花車和缺失值讀取爲NaN
s,這是一個很大的進步。但是,列名和布爾列仍然是帶空格的字符串。
任何直接用熊貓閱讀.csv的方法?或者,也許偶然的csv格式有點,仍然有一個清晰的閱讀與人類可讀的.csv?
PS:我試圖避免使用python作爲字符串讀取所有內容,替換空格,然後將其提供給熊貓,並且還試圖避免定義一些函數並通過converters
關鍵字將它傳遞給熊貓。
我認爲它實際上應該是'pd.read_csv('bibrev.csv',sep ='\ s +,',index_col = 0)'對嗎?但它工作得很好,除了布爾列是一個字符串,而不是布爾。 – TomCho
@TomCho,是的,你是對的,我已經更新了我的答案。我將檢查布爾值...... – MaxU
@TomCho,「通過reindex或其他方法將NAs引入到現有的Series或DataFrame中時,布爾類型和整數類型將被提升爲不同的dtype以存儲NAs」 - http ://pandas.pydata.org/pandas-docs/stable/gotchas.html。所以,你會首先擺脫NaNs ... – MaxU