Python 读取csv时的类型转换
我正在尝试减少内存使用,然后使用以下代码:Python 读取csv时的类型转换,python,pandas,Python,Pandas,我正在尝试减少内存使用,然后使用以下代码: https://www.kaggle.com/arjanso/reducing-dataframe-memory-size-by-65/notebook 并将列名和列类型保存到pickle文件中,以便在从csv读取时,可以按如下方式自动转换类型: pkl_in = open('explore/col_types.pkl', "rb") col_types = pickle.load(pkl_in) pkl_in = open('explore/col
https://www.kaggle.com/arjanso/reducing-dataframe-memory-size-by-65/notebook
并将列名和列类型保存到pickle文件中,以便在从csv读取时,可以按如下方式自动转换类型:
pkl_in = open('explore/col_types.pkl', "rb")
col_types = pickle.load(pkl_in)
pkl_in = open('explore/col_names.pkl', "rb")
mcol_names = pickle.load(pkl_in)
test_data=pd.read_csv('bb.csv',usecols=col_names,dtype=col_types,nrows=100)
但它显示了错误:
ValueError: cannot safely convert passed user dtype of uint32 for float64 dtyped data in column 16
我可以知道在读取csv时如何强制转换为类型吗?您想如何转换
5.6
。它应该是5
还是四舍五入到6
?如果它是5.6,将转换为浮点32,仍然是5.6,但您正在尝试将其转换为uint32
,这就是您的错误消息所说的,不是吗?@FlyingTeller是的,但我希望强制它convert@sweetyBaby如果你有彩车,您可以使用float32
而不是uint32
,因为它们都为每个对象占用32位。仅供参考,本网站还提供了一些好的提示: