首页 > 解决方案 > 使用 Pandas 根据 Condition 将两行数据合二为一

问题描述

我有以下困境,在网上找不到任何答案。

我在单独的行中有数据:

Payment 
Chq 102100
Payment Bank
Payment
Chq 123000

我需要帮助将带有 chq 编号的行组合到其上面的行,如下所示:

Payment Chq 102100
Payment Bank
Payment Chq 123000

有什么建议么?

标签: pythonpandasdataframe

解决方案


使用自定义组groupby喜欢下面:

# Input data
>>> df

              0
0      Payment 
1    Chq 102100
2  Payment Bank
3       Payment
4    Chq 123000

# Output result
>>> df[0].str.strip() \
         .groupby(df[0].str.contains('^Payment').cumsum()) \
         .agg(' '.join).to_frame()

                    0
0                    
1  Payment Chq 102100
2        Payment Bank
3  Payment Chq 123000

推荐阅读