Фрейм данных Pandas в Python.Пропорции и транспонирование - PullRequest
1 голос
/ 13 марта 2019

У меня есть следующий фрейм данных в Пандах. Идея состоит в том, чтобы сгенерировать дополнительные идентификаторы фрейма данных на основе пропорции переменной TYPE, перенеся ее в столбцы. Любая помощь приветствуется!

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 Ответ

1 голос
/ 13 марта 2019

Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...