【发布时间】:2020-08-10 21:21:46
【问题描述】:
我在 pandas 中使用了一个非常大的数据集,为了减少对内存的使用,我将所有列从 float64 转换为 float32,从 int64 转换为 int32。 其中一列是以纳秒为单位的时间戳(类似于 1594686594613248)。在铸造之前,它只有正值。铸造后,它大多具有负值。 astype('int32') 有什么错误吗?我在这里错过了什么。
相关代码:
data_uid_label = pd.read_csv('label_to_uid.csv')
types = data_uid_label.dtypes
for name in data_uid_label.columns:
if(types[name]=='float64'):
data_uid_label[name]=data_uid_label[name].astype('float32')
if(types[name]=='int64'):
data_uid_label[name]=data_uid_label[name].astype('int32')
谢谢
【问题讨论】:
-
如果您不介意丢失一些精度,可以将时间戳转换为秒/毫秒,以便它们可以用更小的 dtype 表示。
标签: python numpy casting int32