pandas read_csv函数可以自动检测dtype吗?

时间:2017-02-27 23:39:32

标签: python pandas dataframe

我有一个包含超过200列的大型CSV文件。一些列是字符串,一些varchar,一些整数和一些浮点数。

当我刚刚将我的csv文件读入pandas数据帧时,它能够检测出哪些是数字列。但是,它会给我specify dtype or low memory error警告。

df = pd.read_csv('myfile.csv')
df_not_num = df_raw.select_dtypes(exclude =[np.number,np.int16,np.bool,np.float32])
print len(df)
>>>200
print len(list(df_not_num))
>>> 10

然后我尝试指定一个dtype:dtype='unicode' 但这会导致我的所有列都成为对象。 在将CSV读入数据帧时,每个列名称的每个dtype都是非常多的手工工作。

pd.read_csv('myfile.csv', dtype = 'unicode')
df_not_num = df_raw.select_dtypes(exclude =[np.number,np.int16,np.bool,np.float32])
print len(df)
>>>>200
print len(list(df_not_num))
>>> 200

因此,避免低内存警告的唯一方法是指定dtype。但是,我如何指定我有不同列的混合dtypes而不必手动指定200列中每一列的dtype?

0 个答案:

没有答案