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位。仅供参考,本网站还提供了一些好的提示: