【问题标题】:How can I merge/sum together a range of rows in a pandas DataFrame into one row?如何将 pandas DataFrame 中的一系列行合并/汇总为一行?
【发布时间】:2021-03-25 13:11:54
【问题描述】:

我有一个 pandas DataFrame,我正在尝试将最后几行合并为一行。有没有一种方法可以指定索引范围并将该范围内的行求和并合并为跨所有列的单行?

谢谢

【问题讨论】:

    标签: python pandas dataframe merge rows


    【解决方案1】:

    是的,您应该能够指定一个索引范围并将该范围内的行求和并合并到所有列中的一行

    start_row = 18
    
    df.iloc[start_row] = df.iloc[start_row:].sum()
    df = df.iloc[:start_row+1]
    

    【讨论】:

      【解决方案2】:

      试试这个:我假设您的数据只有两列(计数和百分比):

      df.reset_index().replace({'index':[i for i in range(18,24)]}, {'index':18}).groupby('index', as_index=False).sum()
      

      【讨论】:

        【解决方案3】:

        您可以将pandas.DataFrame.groupby 与 lambda 函数一起使用:

        start = 18
        df = df.groupby(lambda x: x if x < start else start).sum()
        

        【讨论】:

          猜你喜欢
          • 2020-03-04
          • 2021-07-27
          • 2023-03-02
          • 1970-01-01
          • 1970-01-01
          • 2022-12-22
          • 2019-12-29
          • 2023-02-02
          • 1970-01-01
          相关资源
          最近更新 更多