#python #pandas
#python #pandas
Вопрос:
Предположим, у меня есть следующий фрейм данных:
ID Year Month count
1 2017 8 20
2 2018 8 16
3 2017 8 4
1 2018 8 109
3 2018 8 4
Я пытаюсь получить выходные данные в следующем формате:
ID Year_2017 Year_2018 Month
1 20 109 8
2 16 8
3 4 4 8
Не: — В принципе, я хочу разделить столбец Year
и Count
на разные ID
Ответ №1:
Суть в том, чтобы разделить это на сроки за год и объединить с идентификатором. Остальное — это имена столбцов и удаление ненужных столбцов.
df2017 = df[df['Year'] == 2017]
df2018 = df[df['Year'] == 2018]
new = df2018.merge(df2017, on='ID', how='outer')
new.columns = ['ID', 'tmp_x', 'Month', 'Year_2018', 'tmp_y', 'tmp_month', 'Year_2017']
new.drop(['tmp_x','tmp_y','tmp_month'], axis=1, inplace=True)
new = new[['ID', 'Year_2017', 'Year_2018','Month', ]]
new.sort_values('ID', ascending=True, inplace=True)
new
ID Year_2017 Year_2018 Month
1 1 20.0 109 8
0 2 NaN 16 8
2 3 4.0 4 8