這有點奇怪——
我已經從 pdf 中抓取了一些資料,以使用 tabula 創建一個表格。
該表并不完美,它將一些列合并在一起。例如,3 列都放入 1 列。用分隔符分割它沒問題,我可以做類似的事情 -
columns_split = 'A B C'
df_split = df[columns_split].str.split(' ', expand=True)
問題 - 合并的列之一的值可能高達 4 位。由于某種原因,pdf 表中 4 位長的值中有一個空格,因此值不是“1000”,而是“1 000”。因此,當它閱讀 pdf 時,它得到了 tabula 的尊重。進來的合并列看起來有點像這樣;其中不是三個單獨的列 A、B 和 C,它們都被犁入一列。
df['A B C']
Out[24]:
1 A B C
2 1 000 60,0 300,0
3 1 000 60,0 200,0
4 999 60,0 200,0
5 888 70,0 100,0
6 2 777 80,0 100,0
7 666 80,0 90,0
8 555 50,0 100,0
9 111 50,0 100,0
Name: A B C, dtype: object
連鎖反應是,當我運行 split 命令時,它將拆分在這些值中找到空格的列,因此我最終得到 4 列,其中一些值被敲掉。我最初的想法是忽略第一個分隔符,但這不適用于沒有問題的行。
columns_split = 'A B C'
df_split = df[columns_split].str.split(' ', expand=True)
df_split
Out[26]:
0 1 2 3
1 A B C None
2 1 000 60,0 300,0
3 1 000 60,0 200,0
4 999 60,0 200,0 None
5 888 70,0 100,0 None
6 2 777 80,0 100,0
7 666 80,0 90,0 None
8 555 50,0 100,0 None
9 111 50,0 100,0 None
希望有人有一個鼓舞人心的想法如何解決這個問題。遺憾的是,編輯 pdf 不是一種選擇,以上是為了說明目的,唉,這不是我需要運行它的唯一 pdf。
提前感謝您的幫助。
uj5u.com熱心網友回復:
如果只有第一列有那些不正確的空格,則str.rsplit最多使用 2 個拆分:
df['A B C'].str.rsplit(n=2, expand=True)
輸出:
0 1 2
1 A B C
2 1 000 60,0 300,0
3 1 000 60,0 200,0
4 999 60,0 200,0
5 888 70,0 100,0
6 2 777 80,0 100,0
7 666 80,0 90,0
8 555 50,0 100,0
9 111 50,0 100,0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467798.html
