python - 将独立词组合成一个句子(识别第一个起始词)
问题描述
这是数据框,“>>”是一个句子的开头。那么,有什么建议吗?
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
我不知道任何句子都以>>开头
解决方案
尝试:
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