pandas - изменяет значения столбцов на основе значений словаря - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть CSV-файл, содержащий столбец «Штат», который полностью содержит названия штатов США, например: «Нью-Джерси», «Калифорния» и т. Д. Я хочу изменить этот столбец, чтобы в нем содержались сокращения вместо полного именинапример, "NJ", "CA" ...

. Для этого у меня уже есть словарь, в котором имя состояния сопоставляется с его сокращением

us_state_abbrev = {
'Alabama': 'AL', 'Alaska': 'AK', 'Arizona': 'AZ', 'Arkansas': 'AR', 'California': 'CA', 'Colorado': 'CO',
'Connecticut': 'CT', 'Delaware': 'DE', 'Florida': 'FL', 'Georgia': 'GA', 'Hawaii': 'HI', 'Idaho': 'ID',
'Illinois': 'IL', 'Indiana': 'IN', 'Iowa': 'IA', 'Kansas': 'KS', 'Kentucky': 'KY', 'Louisiana': 'LA',
'Maine': 'ME', 'Maryland': 'MD', 'Massachusetts': 'MA', 'Michigan': 'MI', 'Minnesota': 'MN', 'Mississippi': 'MS',
'Missouri': 'MO', 'Montana': 'MT', 'Nebraska': 'NE', 'Nevada': 'NV', 'New Hampshire': 'NH', 'New Jersey': 'NJ',
'New Mexico': 'NM', 'New York': 'NY', 'North Carolina': 'NC', 'North Dakota': 'ND', 'Ohio': 'OH', 'Oklahoma': 'OK',
'Oregon': 'OR', 'Pennsylvania': 'PA', 'Rhode Island': 'RI', 'South Carolina': 'SC', 'South Dakota': 'SD',
'Tennessee': 'TN', 'Texas': 'TX', 'Utah': 'UT', 'Vermont': 'VT', 'Virginia': 'VA', 'Washington': 'WA',
'West Virginia': 'WV', 'Wisconsin': 'WI', 'Wyoming': 'WY'}

.в моем CSV-файле И словаре и заменить полное имя состояния на сокращение?

Вот код, который я написал, но он не работает:

with open(emp_file, 'r', errors='ignore') as fileHandle:
reader = csv.reader(fileHandle)
for row in reader:
    for state, abbrev in us_state_abbrev.items():
        if row[4] == state:
            row[4] = abbrev

Что я делаю здесь неправильно?Пожалуйста помоги.

1 Ответ

0 голосов
/ 08 февраля 2019
import pandas as pd

df = pd.read_csv(emp_file)

затем, если вы знаете, какой столбец вы хотите редактировать:

df['State'] = df['State'].map(us_state_abbrev).fillna(df['State'])

Примечание: последняя часть имеет дело с State записями, которых нет в вашем словаре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...