有没有合并3行的功能?

2024-10-03 04:35:14 发布

您现在位置:Python中文网/ 问答频道 /正文

ABC | NaN  NaN  NaN  NaN  PK  KJ
PQR | NaN  NaN  RR  SS    NaN  NaN
MNO | PO   UI   NaN  NaN  NaN  NaN

所需输出:

ABC | PO  UI  RR  SS  PK  KJ  

尝试了一个=abc.U优先(pqr) b=mno.U首先(一)


Tags: uirrnansspoabcpkmno
1条回答
网友
1楼 · 发布于 2024-10-03 04:35:14

让我们以下面的示例数据帧为例,包含2个组 相邻3行:

      C1   C2   C3   C4   C5   C6
ABC  NaN  NaN  NaN  NaN   PK   KJ
PQR  NaN  NaN   RR   SS  NaN  NaN
MNO   PO   UI  NaN  NaN  NaN  NaN
XXX   AA  NaN  NaN  NaN   EE  NaN
XX1  NaN   BB  NaN   DD  NaN  FF1
XX2  NaN  NaN   CC  NaN  NaN  FF2

然后按以下步骤进行:

  1. 定义一个函数“累积”组中的内容 行数:

    def getFirstValue(grp):
        return grp.reset_index().bfill(axis=0).iloc[0]
    
  2. 然后应用它:

    df2 = df.groupby(np.arange(len(df.index)) // 3).apply(getFirstValue)
    
  3. 还有一些“整理”操作:

    df2.set_index('index', inplace=True)
    df2.index.name = None
    df2.columns.name = None
    

结果是:

     C1  C2  C3  C4  C5   C6
ABC  PO  UI  RR  SS  PK   KJ
XXX  AA  BB  CC  DD  EE  FF1

相关问题 更多 >