簡體   English   中英

將 header 添加到 Pandas 中的數據文件

[英]Add header to .data file in Pandas

給定一個擴展名為.data的文件,我用pd.read_fwf("./input.data", sep=",", header = None)閱讀了它:

出去:

    0
0   63.0,1.0,1.0,145.0,233.0,1.0,2.0,150.0,0.0,2.3...
1   67.0,1.0,4.0,160.0,286.0,0.0,2.0,108.0,1.0,1.5...
2   67.0,1.0,4.0,120.0,229.0,0.0,2.0,129.0,1.0,2.6...
3   37.0,1.0,3.0,130.0,250.0,0.0,0.0,187.0,0.0,3.5...
4   41.0,0.0,2.0,130.0,204.0,0.0,2.0,172.0,0.0,1.4...
... ...
292 57.0,0.0,4.0,140.0,241.0,0.0,0.0,123.0,1.0,0.2...
293 45.0,1.0,1.0,110.0,264.0,0.0,0.0,132.0,0.0,1.2...
294 68.0,1.0,4.0,144.0,193.0,1.0,0.0,141.0,0.0,3.4...
295 57.0,1.0,4.0,130.0,131.0,0.0,0.0,115.0,1.0,1.2...
296 57.0,0.0,2.0,130.0,236.0,0.0,2.0,174.0,0.0,0.0...

如何向其中添加以下列名稱? 謝謝。

col_names = ["age", "sex", "cp", "restbp", "chol", "fbs", "restecg", 
           "thalach", "exang", "oldpeak", "slope", "ca", "thal", "num"]

更新:

pd.read_fwf("./input.data", names = col_names)

出去:

    age sex cp  restbp  chol    fbs restecg thalach exang   oldpeak slope   ca  thal    num
0   63.0,1.0,1.0,145.0,233.0,1.0,2.0,150.0,0.0,2.3...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1   67.0,1.0,4.0,160.0,286.0,0.0,2.0,108.0,1.0,1.5...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2   67.0,1.0,4.0,120.0,229.0,0.0,2.0,129.0,1.0,2.6...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3   37.0,1.0,3.0,130.0,250.0,0.0,0.0,187.0,0.0,3.5...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4   41.0,0.0,2.0,130.0,204.0,0.0,2.0,172.0,0.0,1.4...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
292 57.0,0.0,4.0,140.0,241.0,0.0,0.0,123.0,1.0,0.2...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
293 45.0,1.0,1.0,110.0,264.0,0.0,0.0,132.0,0.0,1.2...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
294 68.0,1.0,4.0,144.0,193.0,1.0,0.0,141.0,0.0,3.4...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
295 57.0,1.0,4.0,130.0,131.0,0.0,0.0,115.0,1.0,1.2...   NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
296 57.0,0.0,2.0,130.0,236.0,0.0,2.0,174.0,0.0,0.0...   NaN NaN NaN NaN NaN NaN

如果檢查read_fwf

將固定寬度格式行的表格讀入 DataFrame。

因此,如果有分隔符,請使用read_csv

col_names = ["age", "sex", "cp", "restbp", "chol", "fbs", "restecg", 
           "thalach", "exang", "oldpeak", "slope", "ca", "thal", "num"]

df = pd.read_csv("input.data", names=col_names)
print (df)

      age  sex   cp  restbp   chol  fbs  restecg  thalach  exang  oldpeak  \
0    63.0  1.0  1.0   145.0  233.0  1.0      2.0    150.0    0.0      2.3   
1    67.0  1.0  4.0   160.0  286.0  0.0      2.0    108.0    1.0      1.5   
2    67.0  1.0  4.0   120.0  229.0  0.0      2.0    129.0    1.0      2.6   
3    37.0  1.0  3.0   130.0  250.0  0.0      0.0    187.0    0.0      3.5   
4    41.0  0.0  2.0   130.0  204.0  0.0      2.0    172.0    0.0      1.4   
..    ...  ...  ...     ...    ...  ...      ...      ...    ...      ...   
292  57.0  0.0  4.0   140.0  241.0  0.0      0.0    123.0    1.0      0.2   
293  45.0  1.0  1.0   110.0  264.0  0.0      0.0    132.0    0.0      1.2   
294  68.0  1.0  4.0   144.0  193.0  1.0      0.0    141.0    0.0      3.4   
295  57.0  1.0  4.0   130.0  131.0  0.0      0.0    115.0    1.0      1.2   
296  57.0  0.0  2.0   130.0  236.0  0.0      2.0    174.0    0.0      0.0   

     slope   ca  thal  num  
0      3.0  0.0   6.0    0  
1      2.0  3.0   3.0    1  
2      2.0  2.0   7.0    1  
3      3.0  0.0   3.0    0  
4      1.0  0.0   3.0    0  
..     ...  ...   ...  ...  
292    2.0  0.0   7.0    1  
293    2.0  0.0   7.0    1  
294    2.0  2.0   7.0    1  
295    2.0  1.0   7.0    1  
296    2.0  1.0   3.0    1  

[297 rows x 14 columns]

只需在沒有read_csv的情況下執行 read_csv 並傳遞col_names

df = pd.read_csv('input.data', header=None, names=col_names);

Output(頭):

      age    sex    cp    restbp    chol    fbs    restecg    thalach    exang    oldpeak    slope    ca    thal    num
--  -----  -----  ----  --------  ------  -----  ---------  ---------  -------  ---------  -------  ----  ------  -----
 0     63      1     1       145     233      1          2        150        0        2.3        3     0       6      0
 1     67      1     4       160     286      0          2        108        1        1.5        2     3       3      1
 2     67      1     4       120     229      0          2        129        1        2.6        2     2       7      1
 3     37      1     3       130     250      0          0        187        0        3.5        3     0       3      0
 4     41      0     2       130     204      0          2        172        0        1.4        1     0       3      0

暫無
暫無

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

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