#python #python-3.x #pandas #dataframe
#python #python-3.x #pandas #фрейм данных
Вопрос:
Возможно ли объединить объект серии с фреймом данных без необходимости превращать ряд в фрейм данных?
В настоящее время я что-то вычисляю, получаю серию в результате и должен превратить серию в фрейм данных, чтобы объединить два:
clicked_series = p.clicked.sum();
temp_df = pd.DataFrame({'ad_id':clicked_series.index, 'clicks':clicked_series.values})
full_df = pd.merge(full_df, temp_df, on='ad_id', how='left')
Возможно ли выполнить левое внешнее соединение для ряда и фрейма данных напрямую, без необходимости создавать временный фрейм данных?
Ответ №1:
используйте reindex
full_df['clicks'] = clicked_series.reindex(full_df.ad_id).values
старые ответы
Используйте join
технически, я все еще конвертирую в pd.DataFrame
но…
clicked_series = p.clicked.sum();
full_df = full_df.join(clicked_series.to_frame('clicks'), on='ad_id', how='left')
Другим вариантом является использование pd.concat
. Но это будет выглядеть как внешнее соединение.
pd.concat([full_df.set_index('ad_id'),
clicked_series.rename('clicks')], axis=1).reset_index()
Комментарии:
1. Это все, что я также нашел. Первый все еще преобразует ряд в фрейм данных, а второй не допускает левое внешнее соединение.
2. Ты волшебник. Спасибо.