Как манипулировать, фильтровать столбцы с TextFileReader? - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть огромный 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' не имеет атрибута 'Страна'

Как я могу строки столбцов, используя такие критерии, как "=="или"> "или" <"и сохранить их в кадре данных?</p>

Спасибо,

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Спасибо за ваш ответ, и извините, если мой вопрос сбил с толку.

Я только что нашел решение, которое состоит в том, чтобы определить пустой фрейм данных (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)
0 голосов
/ 18 апреля 2019

к сожалению, я не понял, что вы имеете в виду под How can I rows columns using criteria like

Но если я правильно угадаю, это может сработать для вас

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