第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在日期列上拆分 Pandas 中龐大數(shù)據(jù)集的最快方法

在日期列上拆分 Pandas 中龐大數(shù)據(jù)集的最快方法

開滿天機(jī) 2021-09-11 13:31:53
我有一個 1400 萬行的 CSV 文件,其中有一個日期列(不是第一列),我想用它來過濾和拆分?jǐn)?shù)據(jù)。目前,我正在將其加載到 Pandas 數(shù)據(jù)框中來執(zhí)行此操作:df = pd.read_csv(filepath, dtype=str) for date in df['dates'].unique():    subset = df[df['dates'] == date]    subset.to_csv(date + dest_path)有沒有更快的方法來做到這一點(diǎn)?在加載到 Pandas 數(shù)據(jù)幀之前從 CSV 中過濾掉行提供了一個有趣的解決方案,但不幸的是我要拆分的列不在第一列中。編輯:我純粹需要將 csv 文件拆分為每個日期。生成的 csv 文件將傳遞給另一個團(tuán)隊(duì)。我需要所有的列,我不想更改任何數(shù)據(jù),我不需要做任何 groupby。
查看完整描述

1 回答

?
繁星coding

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個贊

主要問題是將整個數(shù)據(jù)集讀入內(nèi)存。通常,對于一個非常大的文件,我需要逐行讀取文件,因?yàn)樗贿m合內(nèi)存。因此,我拆分了文件,然后才能處理各個部分(使用 Python/pandas、R 或 Stata,它們都將整個數(shù)據(jù)集加載到內(nèi)存中)。


要拆分文件,我會從頭開始編寫一個 CSV 閱讀器。如果您不必處理帶引號的字符串中的分隔符,那就不太難了(否則使用regex并不會更難)。使用內(nèi)置csv模塊可能用更少的代碼(我承認(rèn)我從未使用過它)。


下面根據(jù)變量的值拆分文件。也可以調(diào)整代碼以固定行數(shù)拆分,過濾,添加或刪除變量......


import sys


def main(arg):

    if len(arg) != 3:

        print("csvsplit infile outfile variable")

        return


    input_name = arg[0]

    output_name = arg[1]

    split_var = arg[2]


    sep = ","

    outfiles = {}


    with open(input_name) as f:

        var = f.readline().rstrip("\r\n").split(sep)

        ivar = {name: i for i, name in enumerate(var)}

        ikey = ivar[split_var]


        for line in f:

            v = line.rstrip("\r\n").split(sep)

            key = v[ikey]

            if key not in outfiles:

                outfiles[key] = open("%s_%s.csv" % (output_name, key), "wt")

                outfiles[key].write(sep.join(var) + "\n")

            outfiles[key].write(line)


    for key, outfile in outfiles.items():

        outfile.close()


main(sys.argv[1:])


查看完整回答
反對 回復(fù) 2021-09-11
  • 1 回答
  • 0 關(guān)注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號