0

使用 camelot 读取 PDF 表时,一些列被连接起来,它们的值也如下所示

Date      | Facture-ref\nfactureid|     Description\items|  Payé\nEscompte  |Déboursé\nPaiement\net
--------------------------------------------------------------------
12/12/2019| 45333\n34343          |     7899\nscrewio    |  89\n0.00        |3443.12\n231232.00\n456
12/12/2019| 453343\n3434          |     7845\nscrewio    |  78\n0.00        |34.12\n232.00\455

我的输出应该如下所示

Date        |facture |      Facture |      factureid | Description| items  |   Payé |  Escompte|  Déboursé |   Paiement |    net
-----------------------------------------------------
 12/12/2017 |  45333 |       34343  |     #al: 7899  |    screwio |    89  |   0.00 |   3443.12|   231232.00 |   456|
 12/12/2017 | 453343 |         3434 |    #rfp: 7845  |    screwio |    78  |   0.00 |    34.12 |     232.00  |   455  |

我希望根据换行符分隔列和值。

您使用以下 df 进行实验创建

数据 = [['12/12/2019', '45333\n34343','7899\nscrewio','89\n0.00','3443.12\n231232.00\n456'], ['12/12/2019 ', '232\n3434','7845\nnuts','78\n0.00','34.12\n232.00\455'] ]

df33 = pd.DataFrame(data, columns = ['Date', 'Facture-ref\nfactureid','Description\nitems','Payé\nEscompte','Déboursé\nPaiement\nnet'])

4

1 回答 1

0

我确信有一种更优雅的方法可以做到这一点,但这应该可以。

编辑:有和没有下降。如果我对您有误解,请随时发布示例数据集。样本数据:

>>> data = {'col_1':['a']*5,
    'col_2\ncol_3':['b\nc']*5,
    'col_4':['d']*5}
>>> df = pd.DataFrame(data)
>>> df
  col_1 col_2\ncol_3 col_4
0     a         b\nc     d
1     a         b\nc     d
2     a         b\nc     d
3     a         b\nc     d
4     a         b\nc     d

有下降:

>>> for col in [i for i in df.columns if '\n' in i]:
    df[col.split('\n')]=df[col].str.split('\n',expand=True)
    df.drop(columns=col,inplace=True)
>>> df
  col_1 col_4 col_2 col_3
0     a     d     b     c
1     a     d     b     c
2     a     d     b     c
3     a     d     b     c
4     a     d     b     c

无滴:

>>> for col in [i for i in df.columns if '\n' in i]:
    df[col.split('\n')]=df[col].str.split('\n',expand=True)
>>> df
  col_1 col_2\ncol_3 col_4 col_2 col_3
0     a         b\nc     d     b     c
1     a         b\nc     d     b     c
2     a         b\nc     d     b     c
3     a         b\nc     d     b     c
4     a         b\nc     d     b     c
于 2021-02-07T02:01:42.017 回答