python中pandas.read_csv()函数的深入讲解

  • Post category:Python

当我们需要读取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