输入:
LineNo word_num left top width text
1 1 322 14 14 My
1 2 304 4 41 Name
1 3 322 5 9 is
1 4 316 14 20 Raghav
2 1 420 129 34 Problem
2 2 420 31 27 just
2 3 420 159 27 got
2 4 431 2 38 complicated
1 1 322 14 14 #40
1 2 304 4 41 @gmail.com
2 1 420 129 34 2019
2 2 420 31 27 January
如您所见,有列lineNo、left、top和word\u num,因此我尝试使用这两个列获取一些逻辑,也许我可以实现我的解决方案。你知道吗
我想在输出中做一些调整,实际上这个输出是在转换成图像后通过一个PDF来的,所以它抓住了整行,因为整行来了,输出没有意义,我现在想做的是将文本以一种有意义的方式分组。例如 假设我通过使用以下命令得到的输出:
g=df['line\u num'].ne(df['line\u num'].shift()).cumsum() out='\n'。加入(数据框groupby(g) ['text'].agg(''.join)) 打印(输出)
输出=
“我叫拉格哈夫40@gmail.com你知道吗
问题变得复杂了“2019年1月”
预期输出=
“我叫拉格哈夫
*40个
你知道吗@gmail.com你知道吗
问题变得复杂了
2019年1月”
无论它们是否在同一行中,它们都在不同的行中,但逻辑上分组在不同的行中。你知道吗
在我看来,也许我们可以通过以下步骤来实现: enter image description here a) 如果x距离<;阈值,则将同一行上的单词分组
b)如果y距离小于阈值,则下一行的单词与上一行的单词分组
阈值为宽度(图像)/100;x距离从左侧计算;y距离从顶部计算。你知道吗
我们能这样做吗? 如果问题不够清楚,请告诉我! 谢谢!你知道吗
添加的图像,我正试图得到输出,数据在这是有点复杂,我已经改变了它根据我!你知道吗
将双精度} 一起使用,然后对输出
join
-与^{Series
:使用^{} 的另一种解决方案:
编辑:
要回答您的第二个问题,可以尝试像这样遍历该列。你知道吗
要添加空格/…,我同意耶斯雷尔的观点,请使用结构类别方法。你知道吗
相关问题 更多 >
编程相关推荐