#python #pandas #dataframe #pandas-groupby
#python #pandas #фрейм данных #pandas-groupby
Вопрос:
У меня есть фрейм данных pandas, содержащий следующие столбцы (с существующим числовым индексом):
points | variety
----------------
1 97 | Chardonnay
17 67 | Cabernet Sauvignon
12 70 | Cabernet Sauvignon
8 97 | Chardonnay
Я хотел бы преобразовать это в новый фрейм данных с:
points
Столбец в качестве нового индекса- Один столбец для каждой уникальной записи в
variety
столбце - Значения в столбцах с новым именем variety должны содержать частоту, с которой каждое изменение встречалось для исходного
points
значения в исходной таблице.
Например, из примера выше:
Chardonnay | Cabernet Sauvignon
-------------------------------
97 2 | 0
67 0 | 1
70 0 | 1
Обратите внимание, что исходный индекс не имеет отношения к результату. Вот изображение, показывающее более полный пример: Снимок фрейма данных Pandas.
Ответ №1:
Для этого вы можете использовать Pandas.crosstab
:
pd.crosstab(index=df.points, columns=df.variety)
[выход]
variety Cabernet Sauvignon Chardonnay
points
67 1 0
70 1 0
97 0 2