gpt4 book ai didi

python - Skiprow 条件基于值而不是 pandas 中的索引

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:36 25 4
gpt4 key购买 nike

我正在尝试读取 pandas 中的 csv 文件。数据如下:

Date    Value   Valid
23/05/2018 12 Yes
24/05/2018 13 No
25/05/2018 45 No
26/05/2018 11 Yes
27/05/2018 66 Yes
28/05/2018 50 No
29/05/2018 34 Yes
30/05/2018 27 No

我只想读取 Valid 列的输入值为 Yes 的行。这样做的最佳方式是什么?

我想在阅读之前而不是之后过滤它。

最佳答案

您不能在阅读之前忽略行。

相反,您可以在读取数据后进行过滤:

# read file to dataframe
df = pd.read_csv('file.csv')

# apply mask to dataframe
df = df[df['Valid'] == 'Yes']

如果您遇到内存问题,例如,有大量“否”行,读入内存的成本很高,您可以分块。一种静默分块的便捷方式是 dask.dataframe:

import dask.dataframe as dd

# create lazy reader object
df = dd.read_csv('file.csv')

# define filtering logic
df = df[df['Valid'] == 'Yes']

# apply filtering logic and convert to pandas dataframe
df = df.compute()

请注意,在上面的示例中,直到最后一行才涉及计算工作,其中 dask 获取数据 block 、过滤器,然后将结果聚合到常规 pandas 数据帧中。

关于python - Skiprow 条件基于值而不是 pandas 中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50606882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com