Поиск основного значения из другого фрейма данных в Python

#python #python-3.x #pandas #python-2.7

#python #python-3.x #pandas #python-2.7

Вопрос:

Мне нужно обработать данные CSV с помощью Python. В CSV-файле (weather.csv) я получил фактические данные, которые должны быть обработаны.

Перед обработкой данных мне нужно обратиться к другому файлу CSV для поиска нескольких столбцов. Файл states.csv — это мой файл поиска. Он содержит только два столбца (1) Идентификатор (2) Состояние

Я создал два фрейма данных, один с фактическими данными, а другой для данных поиска. Мне нравится заменять имя состояния в df на идентификатор состояния из df_states. И как только это будет сделано, я хотел бы отправить фрейм данных на SQL server. Итак, основную работу по очистке данных и поиску я хотел бы выполнить в скрипте Python.

Я пытался следовать, но безуспешно.

  df=pd.read_csv("weather.csv")
 df_states = pd.read_csv("states.csv")

def lookup_state(state):
    match = (df_states['state'] == state)
    stateid = df_states['state'][match]
    return stateid.values[0]

df['state'].apply(lookup_state)
print (df)
  

Комментарии:

1. В чем именно проблема, которую вы видите? «не повезло» не очень описательно.

2. Мой df не показывает stateid. Как я уже упоминал, я хотел бы либо добавить StateID в df, либо заменить state на его ID.

3. попробуйте взглянуть на слияние

4. является ли вывод df.set_index('state').join(df_states.set_index('state')) тем, что вы хотите?

5. Думаю, я понял это следующим образом — df3=pd.merge(df,df_states,on = «state») df3=df3.drop ([‘state’], axis = 1) print (df3)