#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
У меня есть следующий фрейм данных в Pandas. Идея состоит в том, чтобы сгенерировать дополнительные идентификаторы фрейма данных на основе пропорции ТИПА переменной, транспонировав ее в столбцы. Любая помощь приветствуется!
d = {'ID': [1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2], 'TYPE': ['A','A','A','B','B','B','B','C','C','C','A','A','B','B','B','B','B','B']}
df = pd.DataFrame(data=d)
df
ID A B C
1 0.30 0.40 0.3
2 0.25 0.75 0.0
Ответ №1:
Используйте SeriesGroupBy.value_counts
с параметром normalize=True
и измените форму с помощью Series.unstack
:
df = df.groupby('ID')['TYPE'].value_counts(normalize=True).unstack(fill_value=0)
print (df)
TYPE A B C
ID
1 0.30 0.40 0.3
2 0.25 0.75 0.0
Затем, если необходимо, столбец из index
:
df = df.rename_axis(None, axis=1).reset_index()
print (df)
ID A B C
0 1 0.30 0.40 0.3
1 2 0.25 0.75 0.0
Комментарии:
1. Идеально, это точный ответ, который я искал 🙂