栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

有条件地在pandas中读取csv

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

有条件地在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))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/651934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号