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

时间:2019-04-18 15:15:04

标签: python pandas dataframe stringio

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

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

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

df.get_chunk(3)

问题是,现在我希望能够处理数据;像在通常的数据框中那样,对行使用条件进行提取,例如:

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

例如,在一个数据框中,上面的代码将仅保留France的行。但是当我尝试时:

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

我得到:“ TextFileReader”对象没有属性“国家/地区”

如何使用“ ==”或“>”或“ <”之类的条件对列进行行处理并将其存储到数据框中?

谢谢

2 个答案:

答案 0 :(得分:0)

很遗憾,r'\s\.[a-zA-Z]'

并没有使您明白我的意思。

但是,如果我猜对了,这可能对您有用

How can I rows columns using criteria like

答案 1 :(得分: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)