有条件地在pandas中读取csv

有条件地在pandas中读取csv,第1张

有条件地在pandas中读取csv

您可以分批读取csv。由于

pd.read_csv
chunksize
指定参数时将返回迭代器,因此您可以使用它
itertools.takewhile
来读取所需数量的块,而无需读取整个文件。

import itertools as ITimport pandas as pdchunksize = 10 ** 5chunks = pd.read_csv(filename, chunksize=chunksize, header=None)chunks = IT.takewhile(lambda chunk: chunk['B'].iloc[-1] < 10, chunks)df = pd.concat(chunks)mask = df['B'] < 10df = df.loc[mask]

或者,为了避免不得不

df.loc[mask]
从最后一个块中删除不需要的行,也许更干净的解决方案是定义一个自定义生成器

import itertools as ITimport pandas as pddef valid(chunks):    for chunk in chunks:        mask = chunk['B'] < 10        if mask.all(): yield chunk        else: yield chunk.loc[mask] breakchunksize = 10 ** 5chunks = pd.read_csv(filename, chunksize=chunksize, header=None)df = pd.concat(valid(chunks))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5654065.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存