当我们需要读取CSV文件,并进行数据处理时,Python中的pandas.read_csv()函数是非常常用的一个函数。以下是关于该函数的深入讲解攻略。
概述
pandas.read_csv()
函数用于读取以逗号分隔的文件(或其他分隔符)中的数据,并返回一个DataFrame对象,这是Pandas库中最常用的函数之一。
函数的语法如下:
pandas.read_csv(filepath_or_buffer, sep=",", delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, skiprows=None, nrows=None, skipfooter=0, skip_blank_lines=True, verbose=True, quotechar='"', escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, on_bad_lines=None, skipinitialspace=False, memory_map=False, float_precision=None)
参数说明:
- filepath_or_buffer:CSV文件路径或文件的输入流。
- sep:用作分隔符的字符或字符串。默认为逗号。
- delimiter:与sep参数相同,用于指定分隔符。如果指定了delimiter,则sep参数将被忽略。
- header:行号或列名列表,用于指定列名。默认为“infer”,即自动判断第一行是否为列名。
- names:用于指定列名的列表。
- index_col:用于指定索引列的列名或列数字。
- usecols:用于选择要读取的列的列表或函数。
- squeeze:如果数据只包含一列,则返回Series对象而不是DataFrame对象。
- dtype:用于强制转换列数据类型的字典。例如:dtype = {“id”: int, “name”: str}
- engine:解析行的引擎。可以是“c”,“python”,“python-fwf”或“c-optional”等。
- skiprows:需要忽略的行数列表。
- nrows:需要读取的行数。
- skipfooter:需要忽略文件末尾的行数。
- skip_blank_lines: 是否跳过空行,默认为True。
- verbose:是否显示读取进程,默认为True。
- quotechar:引用字段的字符,默认为双引号。
- escapechar:转义字符,默认为None。
- comment: 指定要忽略的注释字符,默认为 “#”。
- encoding:编码,默认为None。
- dialect:指定分隔符,引用方式等元数据信息。
- error_bad_lines:是否保留错误行,默认为True。
- warn_bad_lines:是否打印错误行,默认为True
- on_bad_lines:可选的处理器函数。(自csv错误行处理器库安装开始支持)。
- skipinitialspace:是否跳过分隔符后的空格,默认为False。
- memory_map:对于大型文件可启用内存映像,默认为False。
- float_precision:指定浮点类型转换精度
示例
让我们看一下如何使用pandas.read_csv()
函数读取CSV文件并进行数据处理。假设我们有以下的CSV文件’example.csv’:
id,name,age
1,Alice,23
2,Bob,25
3,Charlie,27
我们可以使用read_csv()
函数来读取它:
import pandas as pd
df = pd.read_csv('example.csv')
print(df)
输出结果如下:
id name age
0 1 Alice 23
1 2 Bob 25
2 3 Charlie 27
我们还可以使用其他参数来对读取的数据进行处理,例如:
- 指定列名:
import pandas as pd
df = pd.read_csv('example.csv', header=0, names=['ID', 'Name', 'Age'])
print(df)
输出结果如下:
ID Name Age
0 1 Alice 23
1 2 Bob 25
2 3 Charlie 27
- 选取部分列:
import pandas as pd
df = pd.read_csv('example.csv', usecols=['id', 'name'])
print(df)
输出结果如下:
id name
0 1 Alice
1 2 Bob
2 3 Charlie