Как использовать сводную таблицу для моих данных Excel, используя Pandas - PullRequest
0 голосов
/ 02 апреля 2020

Пожалуйста, найдите мои исходные данные ниже.

Device   AppVersion Rating
Rolex       5.8.0   3
i5i_2018    5.7.0   2
Galaxy A71  5.6.0   3
vivo1807    5.8.0   1
Redmi Note5 5.7.0   2
realme3     5.7.0   3
Redmi7      5.8.0   1
vivo1816    5.7.1   3
Redmi 8     5.6.0   2
o7prolte    5.8.0   3

Я хочу получить общее количество оценок для каждой версии в виде вывода, как показано ниже.

Count of Rating    Column Labels            
RowLabels          5.6.0    5.7.0   5.7.1   5.8.0
1                                           2
2                  1        2       
3                  1        1       1       2

Я получил это с помощью сводной таблицы в Excel, но не смог сделать то же самое, используя Pandas. Может ли кто-нибудь предоставить ваши идеи?

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы можете получить сводную таблицу в Pandas, используя сводную таблицу метод:

 df.pivot_table(index='Rating', 
                columns='AppVersion',
                aggfunc='count',
                fill_value=0)


                                   Device
AppVersion  5.6.0   5.7.0   5.7.1   5.8.0
Rating              
1            0       0       0       2
2            1       2       0       0
3            1       1       1       2
1 голос
/ 02 апреля 2020

Попробуйте .groupby, а затем .unstack результат
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.unstack.html

df = ...your dataframe...
counts = df.groupby(['Rating','AppVersion']).count()
result = counts.unstack('AppVersion')

Это будет положить пробелы как NaNs pd.np.nan. Если вы действительно хотите видеть пустое пространство, заполните пустую строку:

result_with_blanks = result.fillna('') 

Это изменит тип данных на объект, поэтому я не рекомендую это.

...