gpt4 book ai didi

python - Pandas DataFrame 分组

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:05 24 4
gpt4 key购买 nike

我有一个如下所示的数据框: enter image description here

数据框根据问题的状态来计算问题的数量:

question_count_data.columns = ['date', 'curriculum_name_en', 'concept', 'language', 
'concept_name_en', 'concept_name_tc', 'state', 'question_count']


question_count_data['state'] = question_count_data['state']\
.map({10: 'DRAFT', 20: 'REVIEW', 30: 'PUBLISHED', 40: 'ERROR', 50: 'DISABLED'})

我使用了以下方法来创建此数据框:

question_count_data = df_question.groupby(['date', 'concept__curriculum__name_en', 'concept', 
'language', 'concept_name_en', 'concept_name_tc', 'state', ],
as_index=False)['question_count'].sum()

我现在想为每个状态 DRAFT、REVIEW、PUBLISHED 等创建单独的列,并提供行中的问题计数,必须如下所示: enter image description here

使用我的 Question_count_data 数据框执行此操作的最佳方法是什么?我不想更改已经实现的 groupby 方法,因为这就是为我提供问题计数的原因。

我不认为使用另一个 groupby 方法是可能的解决方案,因为我最终想要做的是获取列 State 的行值并将它们放入单独的列,如草稿、审阅、已发布等,然后提供计数对于每个日期。

详细的解释会很有帮助。

最佳答案

您真的很接近,需要使用 MultiIndex 删除 Seriesas_index=False ,然后按 Series.unstack reshape :

cols = ['date', 'concept__curriculum__name_en', 'concept', 
'language', 'concept_name_en', 'concept_name_tc', 'state']
question_count_data = (df_question.groupby(cols)['question_count']
.sum()
.unstack(fill_value=0))

关于python - Pandas DataFrame 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52325109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com