簡體   English   中英

pd.read_csv: delimiter = '\t' and header=None 不兼容

[英]pd.read_csv: delimiter = '\t' and header=None not compatible

我有這行代碼:

df = pd.read_csv('some_file.txt',engine ='python', 
                  delimiter = '\t', header=None, encoding="utf-16")

我在我的實驗室中經常安靜地使用這些 txt 文件,我們的一台機器將它們顯示為 output。如果我只使用定界符,我會得到一個漂亮的表格,但第一個元素為 header 用於所有內容。 如果我只使用 header = None,我會擺脫 header,但到處都有一堆 \t。 如果我嘗試同時使用這兩個命令,則會出現此錯誤:

ParserError: Expected 1 fields in line 3, saw 23

刪除 enigne = 'python' 時出現類似的錯誤。 (還嘗試了分隔符和其他一些東西)

幫助將不勝感激!

編輯:根據要求,文件是這樣的:

##BLOCKS= 1
Plate:  Plate1  1.3 PlateFormat Endpoint    Absorbance  Raw FALSE   1                       1   562     1   12  96  1   8       
    Temperature(¡C) 1   2   3   4   5   6   7   8   9   10  11  12      
    26.5    0.8368  0.5211  0.321   0.2707  0.2124  0.1768  0.1694  0.1635  0.1659  0.1029  0.1032  0.104       
        0.7142  0.4866  0.2968  0.252   0.2111  0.1737  0.1633  0.162   0.1599  0.1009  0.1007  0.1025      
        0.3499  0.2119  0.2799  0.2097  0.3114  0.3393  0.2544  0.2965  0.2392  0.3063  0.3093  0.2655      
        0.305   0.2068  0.2573  0.2008  0.287   0.2765  0.2373  0.2703  0.2357  0.2865  0.2926  0.263       
        0.2922  0.3456  0.1964  0.2667  0.3022  0.2596  0.2256  0.2387  0.2498  0.2936  0.2396  0.3411      
        0.3018  0.349   0.2069  0.272   0.2926  0.2444  0.2141  0.2348  0.2486  0.2678  0.2346  0.2944      
        0.2965  0.3505  0.2427  0.3322  0.1873  0.2286  0.3758  0.208   0.3023  0.3573  0.3141  0.2658      
        0.2956  0.3155  0.2514  0.2929  0.1985  0.2379  0.1898  0.2101  0.3211  0.3558  0.3121  0.2567      

~End
Original Filename: 20220725_Benedikt_DEF; Date Last Saved: 7/25/2022 2:31:30 PM

這就是我在沒有 pandas 的情況下閱讀時的樣子:

['##BLOCKS= 1\n', 'Plate:\tPlate1\t1.3\tPlateFormat\tEndpoint\tAbsorbance\tRaw\tFALSE\t1\t\t\t\t\t\t1\t562\t1\t12 \t96\t1\t8\t\t\n', '\t溫度(¡C)\t1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t11\t12\t\t\ n', '\t26.5\t0.8368\t0.5211\t0.321\t0.2707\t0.2124\t0.1768\t0.1694\t0.1635\t0.1659\t0.1029\t0 .1032\t0.104\t\t\n', '\t\t0.7142\t0.4866\t0.2968\t0.252\t0.2111\t0.1737\t0.1633\t0.162\ t0.1599\t0.1009\t0.1007\t0.1025\t\t\n', '\t\t0.3499\t0.2119\t0.2799\t0.2097\t0.3114\t0.3393 \t0.2544\t0.2965\t0.2392\t0.3063\t0.3093\t0.2655\t\t\n', '\t\t0.305\t0.2068\t0.2573\t0. 2008\t0.287\t0.2765\t0.2373\t0.2703\t0.2357\t0.2865\t0.2926\t0.263\t\t\n', '\t\t0.2922\t0 .3456\t0.1964\t0.2667\t0.3022\t0.2596\t0.2256\t0.2387\t0.2498\t0.2936\t0.2396\t0.3411\t\t\n', '\t\t0.3018\t0.349\t0.2069\t0.272\t0.2926\t0.2444\t0.2141\t0.2348\t0.2486\t0.2678\t0.2346\t0. 2944\t\t\n', '\t\t0.2965\t0.3505\t0.2427\t0.3322\t0.1873\t0.2286\t0.3758\t0.208\t0.3023\t0 .3573\t0.3141\t0.2658\t\t\n', '\t\t0.2956\t0.3155\t0.2514\t0.2929\t0.1985\t0.2379 \t0.1898\t0.2101\t0.3211\t0.3558\t0.3121\t0.2567\t\t\n', '\n', '~End\n', '原始文件名:some_file; 上次保存日期:7/25/2022 下午 2:31:30\n']

當我使用時,只需使用 pd.read_csv(file, encoding =''utf-16')

我明白了:

在此處輸入圖像描述

它基本上是一個文件,說明來自具有 8 行和 12 列(96 個樣品)的樣品板的波長吸光度。

假設所有文件都具有相同的結構,而您只需要數據; 跳過前四行,不要使用最后三行,空格分隔符,沒有 header、python 引擎。

>>> df = pd.read_csv(csv,skiprows=4,skipfooter=3,header=None,delim_whitespace=True,engine='python')
>>> df
       0       1       2       3       4       5       6       7       8       9       10      11
0  0.7142  0.4866  0.2968  0.2520  0.2111  0.1737  0.1633  0.1620  0.1599  0.1009  0.1007  0.1025
1  0.3499  0.2119  0.2799  0.2097  0.3114  0.3393  0.2544  0.2965  0.2392  0.3063  0.3093  0.2655
2  0.3050  0.2068  0.2573  0.2008  0.2870  0.2765  0.2373  0.2703  0.2357  0.2865  0.2926  0.2630
3  0.2922  0.3456  0.1964  0.2667  0.3022  0.2596  0.2256  0.2387  0.2498  0.2936  0.2396  0.3411
4  0.3018  0.3490  0.2069  0.2720  0.2926  0.2444  0.2141  0.2348  0.2486  0.2678  0.2346  0.2944
5  0.2965  0.3505  0.2427  0.3322  0.1873  0.2286  0.3758  0.2080  0.3023  0.3573  0.3141  0.2658
6  0.2956  0.3155  0.2514  0.2929  0.1985  0.2379  0.1898  0.2101  0.3211  0.3558  0.3121  0.2567
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM