按 space 拆分合并列...但某些数据在值之间有 spaces

Splitting a merged column by space...but some of the data has spaces between the values

这有点奇怪 -

我从 pdf 中抓取了一些数据以使用表格创建 table。

table 的结果并不完美,它将一些列合并在一起。例如,3 列全部放入 1 列。用定界符分开没问题,我可以做 -

columns_split = 'A B C'
df_split = df[columns_split].str.split(' ', expand=True)

问题 - 合并的列之一的值可能高达 4 位。 出于某种原因,pdf table 中 4 位长的值中有一个 space,因此值不是“1000”,而是“1000”。因此,当它阅读 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 命令时,它会拆分在这些值中找到 space 的列,所以我最终得到 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。

在此先感谢您的帮助。

如果只有第一列有那些不正确的空格,请使用 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