Pandas:根据另一列中的标志连接列中的字符串,直到标志更改为止

2024-06-16 10:27:05 发布

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

我正在尝试根据另一列中的值连接列中的字符串。虽然这本身并不困难,但这里标志的顺序很重要,因此我想不出一个pythonic方法来完成这项任务(目前正在尝试多个计数器/循环)

示例表:

text    flag
a       0
b       0
c       1
d       0
e       1
f       1
g       1

示例输出:

text    flag
ab      0
c       1
d       0
efg     1

我想要''.join连续标志的每个字符串,直到命中下一个标志。唯一的标志是1和0。有什么想法吗

下面是生成示例数据的一种快速方法,这样您就不必自己动手了:

import pandas as pd
df = pd.DataFrame({'text':['a','b','c','d','e','f','g'], 'flag':[0,0,1,0,1,1,1]})

Tags: 数据方法字符串text示例ab顺序标志
1条回答
网友
1楼 · 发布于 2024-06-16 10:27:05

我会这样做:

In [6]: (df.groupby(df.flag.diff().ne(0).cumsum(), as_index=False)
           .agg({'text':'sum','flag':'first'}))
Out[6]:
  text  flag
0   ab     0
1    c     1
2    d     0
3  efg     1

相关问题 更多 >