Как манипулировать данными в столбцах CSV-файлов с помощью Pandas? - PullRequest
0 голосов
/ 04 ноября 2018

Мои данные содержат три столбца, один из которых - местоположение города. Я хочу добавить новый столбец в мой файл .csv, который добавляет почтовый индекс, соответствующий городу в столбце города. Я не знаю, как реализовать условное выражение, которое достигает этого. В настоящее время я использую Pandas для чтения в своем csv-файле и понимаю, как добавить столбец в мой csv-файл, но не могу найти никакой информации о том, как манипулировать данными, как описано выше.

Редактировать:

Мои данные выглядят примерно так (примерно на миллион строк). У меня есть другой файл CSV с двумя столбцами, один из которых содержит состояние и соответствующий почтовый индекс. Я хочу сопоставить состояние в приведенном ниже CSV-файле с почтовым индексом в другом CSV-файле. Мой набор данных также не содержит такого количества состояний, поэтому я подумал, что мог бы воспользоваться простым условным выражением или оператором case, который устанавливает новый столбец, равный определенному почтовому индексу, если определенное состояние находится в этой строке.

enter image description here

1 Ответ

0 голосов
/ 04 ноября 2018

Я предполагаю, что другой CSV-файл имеет столбцы «STATE» и «ZIPCODE», и он содержит ровно одну строку на состояние и имеет сокращения состояний в том же формате, что и большой CSV-файл.

Вы хотите выполнить операцию «слияния» в столбце состояния. Задание слияния в стиле «левое соединение» обеспечит сохранение каждой строки вашего исходного набора данных, даже если у вас нет соответствующего почтового индекса.

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

https://pandas.pydata.org/pandas-docs/stable/merging.html

Это должно сделать то, что вам нужно:

big_df = pandas.read_csv("big_file.csv")
zipcodes_df = pandas.read_csv("zipcodes.csv")
merged_df = big_df.merge(zipcode_df, on='STATE', how='left')
merged_df.to_csv("merged_big_file.csv", index=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...