將 csv 檔案讀入 DataFrame

讀取檔案 data_file.csv 的示例如:

檔案:

index,header1,header2,header3
1,str_data,12,1.4
3,str_data,22,42.33
4,str_data,2,3.44
2,str_data,43,43.34

7, str_data, 25, 23.32

碼:

pd.read_csv('data_file.csv')

輸出:

   index    header1  header2  header3
0      1   str_data       12     1.40
1      3   str_data       22    42.33
2      4   str_data        2     3.44
3      2   str_data       43    43.34
4      7   str_data       25    23.32

一些有用的論點:

  • sep 預設欄位分隔符是逗號 ,。如果你需要不同的分隔符,請使用此選項,例如 pd.read_csv('data_file.csv', sep=';')

  • index_col 使用 index_col = nn 為整數),你可以告訴 pandas 使用列 n 來索引 DataFrame。在上面的例子中:

    pd.read_csv('data_file.csv',  index_col=0)
    

    輸出:

              header1  header2  header3
    index
     1       str_data       12     1.40
     3       str_data       22    42.33
     4       str_data        2     3.44
     2       str_data       43    43.34
     7       str_data       25    23.32
    
  • skip_blank_lines 預設情況下會跳過空白行。使用 skip_blank_lines=False 包含空行(它們將填充 NaN 值)

    pd.read_csv('data_file.csv',  index_col=0,skip_blank_lines=False)
    

    輸出:

             header1  header2  header3
    index
     1      str_data       12     1.40
     3      str_data       22    42.33
     4      str_data        2     3.44
     2      str_data       43    43.34
    NaN          NaN      NaN      NaN
     7      str_data       25    23.32
    
  • parse_dates 使用此選項可解析日期資料。

    檔案:

    date_begin;date_end;header3;header4;header5
    1/1/2017;1/10/2017;str_data;1001;123,45
    2/1/2017;2/10/2017;str_data;1001;67,89
    3/1/2017;3/10/2017;str_data;1001;0
    

    將列 01 解析為日期的程式碼:

    pd.read_csv('f.csv', sep=';', parse_dates=[0,1])
    

    輸出:

      date_begin   date_end   header3  header4 header5
    0 2017-01-01 2017-01-10  str_data     1001  123,45
    1 2017-02-01 2017-02-10  str_data     1001   67,89
    2 2017-03-01 2017-03-10  str_data     1001       0
    

    預設情況下,推斷日期格式。如果要指定可以使用的日期格式

    dateparse = lambda x: pd.datetime.strptime(x, '%d/%m/%Y')
    pd.read_csv('f.csv', sep=';',parse_dates=[0,1],date_parser=dateparse)
    

    輸出:

      date_begin   date_end   header3  header4 header5
    0 2017-01-01 2017-10-01  str_data     1001  123,45
    1 2017-01-02 2017-10-02  str_data     1001   67,89
    2 2017-01-03 2017-10-03  str_data     1001       0   
    

有關該功能引數的更多資訊,請參閱官方文件