【问题标题】:Pandas, merging two rows with different index names熊猫,合并具有不同索引名称的两行
【发布时间】:2016-05-11 16:15:21
【问题描述】:

我有一个数据框,df,看起来像这样:

              Done  Todo  Total                     
Painting       55    54    109
Fitting        17    26     43
Plumbing       10    26     36
Electricity     7    29     36
Piping         29     5     34
Roofing        12    20     32

我需要合并索引 'Plumbing' 和 'Piping' 以便我有一个如下所示的数据框:

              Done  Todo  Total                     
Painting       55    54    109
Fitting        17    26     43
Plumbing       39    46     68
Electricity     7    29     36
Piping         29     5     34

我怎样才能实现这是熊猫?

我已经尝试了以下

df.loc['Plumbing'] = df.loc['Plumbing'] + df.loc['Piping']

但这会在数据框中保留“管道”行。有没有办法自动执行,以便自动删除“管道行”? Thisthis 问题没有提供我需要的内容。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    放下更容易。

    但是你可以在索引中replace 值(首先调用to_series,因为replace 没有在index 中实现)然后groupby 通过索引与sum

    df.index = df.index.to_series().replace({'Piping':'Plumbing'}) 
    print df
                 Done  Todo  Total
    Painting       55    54    109
    Fitting        17    26     43
    Plumbing       10    26     36
    Electricity     7    29     36
    Plumbing       29     5     34
    Roofing        12    20     32
    
    print df.groupby(df.index, sort=False).sum()
                 Done  Todo  Total
    Painting       55    54    109
    Fitting        17    26     43
    Plumbing       39    31     70
    Electricity     7    29     36
    Roofing        12    20     32
    

    【讨论】:

      【解决方案2】:

      它不是自动的,但是:

      df.loc['Plumbing'] = df.loc['Plumbing'] + df.loc['Piping']
      df.drop('Piping',axis=0,inplace=True)
      

      【讨论】:

        猜你喜欢
        • 2017-01-31
        • 2020-11-27
        • 2018-07-17
        • 2018-09-17
        • 1970-01-01
        • 2017-02-20
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        相关资源
        最近更新 更多