gpt4 book ai didi

python - pandas 相当于 .rda/.rdata

转载 作者:行者123 更新时间:2023-12-01 01:51:33 25 4
gpt4 key购买 nike

我有一个大约 1000 列的大型数据框。在完成所有缺失值处理并将数据类型更改为我想要的内容之后,我已经能够将该数据框的大小减少到几乎一半。我通过将大量 int64 更改为 int16 并将对象更改为类别来做到这一点。

在 R 中执行类似操作后,我可以将这个新数据帧保存为 .rda 格式,然后将其加载回来。这有助于我在完成所有操作后直接获取格式中的所有变量。有没有办法可以将其保存在 python 中,然后重新加载这种特定的数据格式,以便维护数据类型?

附注- 写入 csv 并将其加载回来让我再次做一些工作。

最佳答案

设置

df = pd.DataFrame(dict(A=[1, 2, 3], B=list('XYZ')))
df.A = df.A.astype(np.int16)
df.B = pd.Categorical(df.B)

df

A B
0 1 X
1 2 Y
2 3 Z
<小时/>
df.dtypes

A int16
B category
dtype: object
<小时/>

您可以使用pandas.DataFrame.to_hdf

保存到hdf
使用 format='table' 因为来自分类的 NotImplementedError

df.to_hdf('small.h5', 'this_df', format='table')

回读

df1 = pd.read_hdf('small.h5', 'this_df')

df1

A B
0 1 X
1 2 Y
2 3 Z

检查数据类型

df.dtypes

A int16
B category
dtype: object

检查等价性

df1.equals(df)

True
<小时/>

使用 Feather

您可能需要安装feather-format

conda install feather-format -c conda-forge

或者

pip install -U feather-format

然后

df.to_feather('small.feather')

df1 = pd.read_feather('small.feather')

df1.equals(df)

True

feather 的优点是您也应该能够在 R 中读取它们,并且读写速度应该非常快。

<小时/>

粗略时间比较

%timeit pd.read_feather('small.feather')
%timeit pd.read_hdf('small.h5', 'this_df')

842 µs ± 11.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
23.2 ms ± 479 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

关于python - pandas 相当于 .rda/.rdata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50663164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com