Pandas:导入 csv 文件时如何指定类型
将 CSV 文件导入 pandas 时,可以使用以下基本语法来指定 DataFrame 中每列的类型:
df = pd. read_csv (' my_data.csv ', dtype = {' col1 ': str , ' col2 ': float , ' col3 ': int })
dtype参数指定将 CSV 文件导入 pandas DataFrame 时每列应具有的数据类型。
以下示例展示了如何在实践中使用此语法。
示例:将 CSV 文件导入 Pandas 时指定类型
假设我们有以下名为篮球数据.csv的 CSV 文件:
如果我们使用read_csv()函数导入 CSV 文件,pandas 将尝试自动识别每列的数据类型:
import pandas as pd #import CSV file df = pd. read_csv (' basketball_data.csv ') #view resulting DataFrame print (df) At 22 10 0 B 14 9 1 C 29 6 2 D 30 2 3 E 22 9 4 F 31 10 #view data type of each column print ( df.dtypes ) team object int64 dots rebounds int64 dtype:object
从结果中我们可以看到DataFrame的列有以下数据类型:
- 团队:对象
- 点:int64
- 反弹:int64
但是,我们可以使用read_csv()函数中的dtype参数来指定每列应具有的数据类型:
import pandas as pd #import CSV file and specify dtype of each column df = pd. read_csv (' basketball_data.csv ', dtype = {' team ': str , ' points ': float , ' rebounds ': int })) #view resulting DataFrame print (df) At 22 10 0 B 14 9 1 C 29 6 2 D 30 2 3 E 22 9 4 F 31 10 #view data type of each column print ( df.dtypes ) team object float64 points rebounds int32 dtype:object
从结果中我们可以看到DataFrame的列有以下数据类型:
- 团队:对象
- 点数:float64
- 反弹:int32
这些数据类型与我们使用dtype参数指定的数据类型相对应。
请注意,在此示例中,我们指定了 DataFrame 中每一列的类型。
但是,您可以选择仅指定特定列的类型,并让 pandas 推断其余列的类型。
注意:您可以在此处找到 pandas read_csv()函数的完整文档。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务:
Pandas:如何在读取 CSV 文件时跳行
Pandas:如何将数据添加到现有 CSV 文件
Pandas:如何读取没有标题的 CSV 文件
Pandas:导入 CSV 文件时如何设置列名称