根据熊猫中的列索引在csv文件导入期间定义数据类型
发布于 2021-01-29 15:04:46
我需要导入一个包含300多个列的csv文件,在这些列中,仅第一列需要指定为类别,而其余列应为float
32或更少。我猜想我可以通过列索引指定列的数据类型。我的问题是:基于列索引指定数据类型的最佳方法是什么?
Col_A Col_B Col_C Col_D
001 1 2 1.2
002 2 3 3.5
003 3 4.5 7
004 4 6.5 10
我试过的代码是:
df = pd.read_csv(path, low_memory=False,
dtype={'Col_A': 'category', [2:]: np.float32)}
关注者
0
被浏览
66
1 个回答
-
读取两次,第一次获取所有列,第二次读取时指定dtype。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) df.to_csv('tmp.csv',index=False) path = 'tmp.csv' df =pd.read_csv(path) type_dict = {} for key in df.columns: if key == 'A': type_dict[key]='category' else: type_dict[key]=np.float32 df = pd.read_csv(path,dtype=type_dict) print(df.dtypes)