[英]Pandas read_csv with incorrect header delimiter
我有一個 csv 文件,比如 test.csv,看起來像這樣
Data 1 | Data 2 | Data 3 |
1 | 2 | 3 | | | 6
如果我在記事本++ 或文本中打開 csv,它會顯示如下
Data 1, Data 2, Data 3
1,2,3,,,6
instead of
Data 1, Data 2, Data 3, ,,
1,2,3,,,6
使用 pandas.read_csv 時出現錯誤,因為我的行的列數多於 header 行中聲明的列數。 有沒有辦法找到整個CSV的最大列數?
我的提議是:
所以代碼應該是:
df = pd.read_csv(io.StringIO(txt), skiprows=1,
names=['Data 1', 'Data 2', 'Data 3', 'Data 4', 'Data 5', 'Data 6'])
要考慮的一個細節是應該如何表示空單元格。
read_csv的默認行為是將它們視為NaN ,但缺點是這些列被強制為float 。
另一種可能性是傳遞na_filter=False
參數,然后:
另請注意,您的標題行的格式在更多細節上已損壞。 問題的根源是逗號后的空格:它們成為下一列名稱的初始部分。
因此,即使您只有 3 列數據,列名也將是:
['Data 1', ' Data 2', ' Data 3']
(注意前導空格)。 所以這是跳過標題行的另一個原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.