#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)