有条件地在熊猫中读取csv

精神病学

我有大型CSV,我只对这些行的子集感兴趣。特别是,我想读取在满足特定条件之前发生的所有行。

例如,如果read_csv将产生数据框:

     A    B      C
1   34   3.20   'b'
2   24   9.21   'b'
3   34   3.32   'c'
4   24   24.3   'c'
5   35   1.12   'a'
... 
1e9 42   2.15   'd'

有什么方法可以读取csv中的所有行,直到col B超过10。在上面的示例中,我想读入:

     A    B      C
1   34   3.20   'b'
2   24   9.21   'b'
3   34   3.32   'c'
4   24   24.3   'c'

我知道在读入数据帧后如何将这些行扔掉,但是到现在为止,我已经花了所有的计算来读入它们。在读取csv之前,我无权访问最后一行的索引(不要跳过脚

算了吧

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

import itertools as IT
import pandas as pd

chunksize = 10 ** 5
chunks = 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'] < 10
df = df.loc[mask]

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

import itertools as IT
import pandas as pd

def valid(chunks):
    for chunk in chunks:
        mask = chunk['B'] < 10
        if mask.all():
            yield chunk
        else:
            yield chunk.loc[mask]
            break

chunksize = 10 ** 5
chunks = pd.read_csv(filename, chunksize=chunksize, header=None)
df = pd.concat(valid(chunks))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件地选择熊猫DataFrame中的数据

来自分类Dev

如何有条件地在熊猫中删除行

来自分类Dev

有条件地选择熊猫DataFrame中的数据

来自分类Dev

我可以有条件地使用熊猫read_csv转换器吗?

来自分类Dev

linux-bash从csv读取数据并有条件地求和

来自分类Dev

如何有条件地读取所有属性?

来自分类Dev

根据所有列的值有条件地删除熊猫中的行

来自分类Dev

有条件地替换丢失的数据熊猫

来自分类Dev

熊猫有条件地合并(和求和)行

来自分类Dev

如何有条件地每天重置熊猫行

来自分类Dev

熊猫有条件地合并(和求和)行

来自分类Dev

在 groupby 熊猫中有条件地设置值

来自分类Dev

Unix:有条件地逐行读取文件

来自分类Dev

从Firebase中有条件地读取数据

来自分类Dev

如何有条件地替换熊猫数据框列中的子字符串?

来自分类Dev

熊猫-比较行中的列ID并有条件地删除

来自分类Dev

如何在熊猫中有条件地填充列中的空值

来自分类Dev

熊猫-用于有条件地更新下一行中的某些列的功能

来自分类Dev

有条件地替换熊猫数据框中的值

来自分类Dev

有条件地替换熊猫数据框中的值-numpy行为

来自分类Dev

有条件地重置熊猫数据框中的数据

来自分类Dev

使用熊猫有条件地在python中连接一个数据框

来自分类Dev

有条件地更改熊猫中的数据帧索引

来自分类Dev

尝试有条件地读取R中的文件时出错

来自分类Dev

有条件地提取CSV文件的行?

来自分类Dev

如何有条件地删除write.csv中的引号?

来自分类Dev

有条件地更改csv中的第二列

来自分类Dev

在 csv 文件中的字段上有条件地追加字符串

来自分类Dev

有条件地在XML ArrayList中包含bean

Related 相关文章

热门标签

归档