【问题标题】:Combine two row datas into one based on Condition using Pandas使用 Pandas 根据 Condition 将两行数据合二为一
【发布时间】:2021-12-02 14:39:40
【问题描述】:
我有以下两难境地,在网上找不到任何答案。
我在不同的行中有数据:
Payment
Chq 102100
Payment Bank
Payment
Chq 123000
我需要帮助将带有 chq 编号的行组合到其上面的行,如下所示:
Payment Chq 102100
Payment Bank
Payment Chq 123000
有什么建议吗?
【问题讨论】:
标签:
python
pandas
dataframe
【解决方案1】:
使用自定义组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