【问题标题】:Sum column values based on part of index names in dataframe根据数据框中的部分索引名称对列值求和
【发布时间】:2020-01-16 06:05:03
【问题描述】:

我有以下数据框,它是 groupby 操作的结果。

Gender          F     M
Grade letter
D            NaN   1.0
D+            7.0  2.0
C-            3.0  2.0
C             3.0  4.0
C+            9.0  12.0
B-            8.0  10.0
B             6.0  3.0
B+            5.0  7.0
A-            7.0  4.0
A             2.0  4.0
A+            1.0 NaN

我想合并 D、C、B、A 等等级字母,忽略后缀 (-、+)。

所需的输出类似于

Gender          F     M
Grade letter
D             7.0   3.0
C             15.0 18.0
B             19.0 20.0
A             10.0 8.0

我尝试了here 提供的解决方案,但它不适合我。

df.groupby(df.index.to_series().str[0]).size().unstack(fill_value=0)

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以聚合sum,首字母也可以省略.to_series()

    df1 = df.groupby(df.index.str[0], sort=False).sum()
    print (df1)
               F     M
    Gender            
    D        7.0   3.0
    C       15.0  18.0
    B       19.0  20.0
    A       10.0   8.0
    

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2018-01-03
      • 1970-01-01
      • 2019-11-07
      • 2013-12-15
      相关资源
      最近更新 更多