如何使用TextFileReader操作,过滤列?

问题描述 投票:0回答:2

我有一个8GB的大量CSV文件,其中包含有关在法国创建的公司的信息。我设法使用以下方法在python中读取文件:

df = pd.read_csv('File', sep=";", encoding="latin", iterator = True, chunksize=1000)

我知道这段代码有效,因为当我编写下面的代码时,我得到一个类似数据帧的输出,有3个随机行:

df.get_chunk(3)

问题是,现在我希望能够操纵数据;使用行上的条件进行提取,就像在通常的数据框中一样,如:

df[(df.Country == "France")]

例如,在数据框中,上面的代码只保留法国的行。但当我尝试时:

df.read(df[(df.Country == "France")])

我得到:'TextFileReader'对象没有属性'Country'

如何使用“==”或“>”或“<”等条件对列进行排序并将这些列存储到数据框中?

谢谢,

python pandas dataframe stringio
2个回答
0
投票

不幸的是,我没有得到你的意思与How can I rows columns using criteria like

但如果我猜对了,这对你有用

 new_df = df[(df.Country == "France") or
             (df.Country == "Germany") or 
             (df.population >= 1000000]

0
投票

谢谢你的回答,如果我的问题令人困惑,那就很抱歉。

我刚刚找到了一个解决方案,即定义一个空数据帧(df_s)并使用for循环用标准(只有法国公司)填充它,如下所示:

df_s = []

file='Path\file.csv'
txt = pd.read_csv(file, sep=";", encoding="latin", iterator = True, chunksize=2000)

for df in txt:
    df_s.append(df[df['Country' == "France"])

df_f = pd.concat(df_s,ignore_index = True)
© www.soinside.com 2019 - 2024. All rights reserved.