我有一个包含超过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?