python - 如何在 python 中的这个 pandas 数据框中使用 groupby 或 pivot

标签 python pandas group-by pivot-table pandas-groupby

<分区>

我有以下数据框:

name   state  teams      score

abc    NY      red         1
def    VA      yellow      9
ghi    MO      green       6
abc    WA      red         2
klm    IL      yellow      1
ghi    MN      green       8
def    VA      blue        3
xyz    NY      blue        5
abc    NY      blue        5
abc    NY      red         4
ghi    MN      green       7

我想以这种方式对每个名称状态组合的数据进行分组,我希望每个团队的得分最低,例如在我们拥有的数据中: 名称“abc”、状态“NY”和团队“red”有两个分数 1 和 4 那么这里“红色”队的最低分数是 1。

对于我们没有分数的队伍,最低分数可以为0。

示例输出:

name  state   red  yellow  green blue
abc    NY      1    0      0      5
def    VA      0    9      0      3
ghi    MO      0    0      6      0
abc    WA      ....................
klm    IL      ....................
ghi    MN      0    0      7     0     
xyz    NY      0    0     0     5   

最佳答案

选项 1:使用 groupbyunstack

使用,first获取一个值,unstack中的fill_value参数将NaN替换为零:

df.groupby(['name','state','teams']).min()['score'].unstack(fill_value=0).reset_index()

输出:

teams name state  blue  green  red  yellow
0      abc    NY     5      0    1       0
1      abc    WA     0      0    2       0
2      def    VA     3      0    0       9
3      ghi    MN     0      8    0       0
4      ghi    MO     0      6    0       0
5      klm    IL     0      0    0       1
6      xyz    NY     5      0    0       0

选项 2:使用 pd.crosstab

(pd.crosstab([df['name'],df['state']],df['teams'],df['score'],aggfunc='min')\
  .fillna(0)
  .astype(int)
  .reset_index())

选项 3:使用 pd.pivot_table

(pd.pivot_table(df,'score',['name','state'],'teams',aggfunc='min', fill_value=0)
   .reset_index())

关于python - 如何在 python 中的这个 pandas 数据框中使用 groupby 或 pivot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50709114/

相关文章:

Python:如何避免循环在 Pandas 数据框中进行转换?

Dataframe 查询中的 Python lambda 函数

MySQL 选择标签

MySql 每组中第二小的元素

mysql - 按固定间隔范围分组

python - 使用 Matplotlib 创建箱线图

python - 实现 group_by_owners 字典

python - Pandas unstack 不起作用

python - 如何将我的应用程序 python 代码连接到 gui?

python - 如何在Python中解析JSON数据键和值?