将 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 = n
(n
为整数),你可以告诉 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
将列
0
和1
解析为日期的代码: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
有关该功能参数的更多信息,请参阅官方文档 。