如何根据数据框中的条件将行与前一行合并

con*_*449 4 python pandas

我有一个数据框,其中每一行都是一个单词或标点符号。我想遍历数据框,每当一行包含标点符号时,我想将它与前一行结合起来。

例如,我想转换:

   word 
0  hello      
1  ,
2  how
3  are
4  you
5  ?  
Run Code Online (Sandbox Code Playgroud)

进入:

   word 
0  hello,      
2  how
3  are
4  you?
Run Code Online (Sandbox Code Playgroud)

谢谢。

piR*_*red 5

matchcumsum

df.groupby((~df.word.str.match('\W')).cumsum(), as_index=False).sum()

     word
0  hello,
1     how
2     are
3    you?
Run Code Online (Sandbox Code Playgroud)

isin

此外,如果没有 as_index=True

from string import punctuation

df.groupby((~df.word.isin(list(punctuation))).cumsum()).sum()

        word
word        
1     hello,
2        how
3        are
4       you?
Run Code Online (Sandbox Code Playgroud)