在不推断dtypes的情况下创建pandas DataFrame

时间:2018-04-12 19:19:37

标签: python pandas numpy

我想从(大)列表列表中创建数据帧(内部列表是行)。 pd.DataFrame(lst, columns=my_columns)通常会完成这项工作,但我想自定义结果数据框的dtypes。一些列可以以较低的精度(np.float32)存储,其他列是实际表示时间戳的整数(以numpy表示,例如my_ts = np.datetime64(my_int, 'ns'))。不幸的是,DataFrame构造函数只允许指定单个dtype。还有另一种方法可以达到我的目的吗?

当然,我可以按如下方式投射数据:

df['some_col'] = df['some_col'].astype(desired_type)

但这涉及大量复制,我的数据集非常大。

当我们构建DataFrame pandas时,在python列表中复制数据,而不是用于推断类型的任何算法(推断类型的唯一安全方法是扫描整个数据集)。如果我们只能提示它的dtypes,我们可以节省复制和dtype推理。

0 个答案:

没有答案