我有一个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'
如何使用“==”或“>”或“<”等条件对列进行排序并将这些列存储到数据框中?
谢谢,
不幸的是,我没有得到你的意思与How can I rows columns using criteria like
但如果我猜对了,这对你有用
new_df = df[(df.Country == "France") or
(df.Country == "Germany") or
(df.population >= 1000000]
谢谢你的回答,如果我的问题令人困惑,那就很抱歉。
我刚刚找到了一个解决方案,即定义一个空数据帧(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)