我有两个dataframe:
section_headers =
start_sect_ end_sect_
0 0 50
1 121 139
2 221 270
sentences =
start_sent_ end_sent_
0 0 50
1 56 76
2 77 85
3 88 111
4 114 120
5 121 139
6 221 270
我正在尝试合并属于每个section_header
下的sentences
...
当句子的start_sent_大于或等于section_header的start_sect_并且小于或等于下一个section_header的start_sect_时,句子属于section_header下,等等。
考虑到这一点,我想要的输出是:
merge =
start_sent_ end_sent_ start_sect_
0 0 50 0
1 56 76 0
2 77 85 0
3 88 111 0
4 114 120 0
5 121 139 121
6 221 270 221
我最初将其转换为字典,然后根据条件创建一个新的 Dataframe ,但我处理的数据量非常大,并且需要永远迭代记录。
我正在尝试设计一种方法,不必迭代这些记录来合并数据。我在这里尝试了广播方法Solution 2: Numpy Solution for large dataset,但是由于这种方法不允许索引数组,所以它不起作用。否则,它对我拥有的另外两个合并用例工作得很好。
1条答案
按热度按时间8zzbczxx1#
这看起来像是
merge_asof
的用法。使用
direction="backward"
,section_headers
作为右DF,合并将在<=
上进行: