加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用python分割数据框取决于csv文件大小

发布时间:2020-12-17 17:36:52 所属栏目:Python 来源:网络整理
导读:我有一个非常大的数据框,有超过一百万条记录和5列. 我想将此数据帧保存到csv并将其拆分为多个部分,以便每个文件在压缩后最大不超过500MB. 是否可以在不将数据帧保存到我的机器并在那里检查的情况下执行此操作? 最佳答案 如果不保存,您将无法知道CSV文件的大

我有一个非常大的数据框,有超过一百万条记录和5列.
我想将此数据帧保存到csv并将其拆分为多个部分,以便每个文件在压缩后最大不超过500MB.
是否可以在不将数据帧保存到我的机器并在那里检查的情况下执行此操作?

最佳答案
如果不保存,您将无法知道CSV文件的大小.可以保存大数据框的一部分,并使用其文件大小来估算每行的大小.

import pandas as pd

big_df = pd.DataFrame(data=pd.np.random.randn(int(2e6),5))

big_df.iloc[:100000].to_csv('temp.csv')

# look at temp.csv file size - 100 000 rows is 10 MB for me
# if I want about 50 MB per file I store to CSV a half million rows
# set it manually or you can compute it with os.path.getsize('temp.csv')
rows_max = int(5e5)

row_from = 0
row_to = rows_max
file_n = 1

while True:
    fn_i = 'big_%s.csv' % str(file_n).zfill(3)
    big_df.iloc[row_from:row_to].to_csv(fn_i)

    if row_to > big_df.index.size:
        break

    row_from = row_to
    row_to = row_from + rows_max
    file_n += 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读