首页 > 解决方案 > 将独立词组合成一个句子(识别第一个起始词)

问题描述

这是数据框,“>>”是一个句子的开头。那么,有什么建议吗?

import pandas as pd
data = {'start_time': [0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3],
'end_time': [0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4],
'word':['>> I','AM','OK','>> HOW', 'ABOUT', 'YOU','>>OK']}
data
df = pd.DataFrame(data, columns = ['start_time', 'end_time','word'])
df

我需要保持>>作为句子的开头,结果是

start_time end_time    word

0.1         0.6       >> I AM OK

0.7         1.2       >> HOW ABOUT YOU

1.3         1.4       >>OK

我不知道任何句子都以>>开头

标签: pythonpandasdataframenumpy

解决方案


尝试:

m=df['word'].str.startswith('>>').cumsum()

最后:

out=df.groupby(m).agg({'start_time':'first','end_time':'last','word':' '.join})

如果需要使用reset_index()

out=out.reset_index(drop=True)

或者

第一步:

out=(df.groupby(df['word'].str.startswith('>>').cumsum())
       .agg({'start_time':'first','end_time':'last','word':' '.join})
       .reset_index(drop=True))

输出out

    start_time  end_time    word
0   0.1          0.6        >> I AM OK
1   0.7          1.2        >> HOW ABOUT YOU
2   1.3          1.4        >>OK

推荐阅读