我有一个看起来像这样的数据框 -
Img x1 y1 x2 y4 Height Text
7 165 87 236 101 14 Shinner s
8 240 87 274 101 14 cary
9 290 87 317 101 14 Tate
10 324 87 389 104 17 Adress)
11 608 87 673 101 14 SHipper
12 690 87 815 101 14 ACC OLN MLITTHS
13 903 87 933 101 14 Not
14 937 87 1018 101 14 necotiapla
35 906 162 953 175 13 issven
36 960 162 984 179 17 OY
我想计算一行的 'x2' 和后续行的 'x1' 之间的距离,如果它们之间的差异小于 75,则将 'Text' 中的值组合在一起以形成一个新的数据帧
例如——
预期输出 -
Index Text
1 Shinners cary Tate Adress)
2 SHipper ACC OLN MLITTHS
3 Not necotiapla
4 issven OY
IIUC,你可以这样做:
mask = df['x2'].shift().sub(df['x1']).abs()
df.Text.groupby(mask.gt(75).cumsum()).apply(' '.join)
输出:
0 Shinners cary Tate Adress)
1 SHipper ACC OLN MLITTHS
2 Not necotiapla
3 issven OY
Name: Text, dtype: object
如果你想要Img
列,你可以这样做:
df.groupby(mask.gt(75).cumsum()).agg({'Img':list, 'Text':' '.join})
输出:
Img Text
0 [7, 8, 9, 10] Shinners cary Tate Adress)
1 [11, 12] SHipper ACC OLN MLITTHS
2 [13, 14] Not necotiapla
3 [35, 36] issven OY
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句