【发布时间】:2021-03-19 08:20:44
【问题描述】:
我有一个问题。
想象一下我有以下df:
**Document type** **Invoicenumber Invoicedate** description quantity unit price line amount
Invoice 123 28-08-2020
0 NaN 17-09-2020 test 1,5 5 20
0 NaN 16-04-2020 test2 1,5 5 20
Invoice 456 02-03-2020
0 NaN NaN test3 21 3 64
0 0 NaN test3 21 3 64
0 0 NaN test3 21 3 64
有0的行属于上一行,是同一个文档的行项。
我的目标是转置行项目,以便它们在每张发票的同一行上:
**Document type** **Invoicenumber Invoicedate** description#1 description#2 quantity quantity#2 unit price unit price #2 line amount line amount #2
Invoice 123 28-08-2020 test test2 1,5 1,5 5 5 20 20
第二个发票行相同 如何做到这一点?
请帮忙
根据要求:
{'Document Type': {0: 'IngramMicro.AccountsPayable.Invoice',
1: 0,
2: 0,
3: 'IngramMicro.AccountsPayable.Invoice',
4: 0,
5: 0,
6: 0},
'Factuurnummer': {0: '0.78861803',
1: 'NaN',
2: 'NaN',
3: '202130534',
4: 'NaN',
5: 'NaN',
6: 'NaN'},
'Factuurdatum': {0: '2021-05-03',
1: nan,
2: nan,
3: '2021-09-03',
4: nan,
5: nan,
6: nan},
'description': {0: nan,
1: 'TM 300 incl onderstel 3058C003 84433210 4549292119381',
2: 'ESP 5Y 36 inch 7950A539 00000000 4960999794266',
3: nan,
4: 'Basistarief A3 Office',
5: 'Toeslag 100 km enkele reis Leveren installeren Xerox VL C7020 05-03-2021',
6: 'Toeslag 100 km enkele reis Leveren installeren Xerox VL C7020 05-03-2021'},
'quantity': {0: nan, 1: 1.0, 2: 1.0, 3: nan, 4: 1.0, 5: 1.0, 6: 2.0},
'unit price': {0: nan,
1: 1211.63,
2: 742.79,
3: nan,
4: 260.0,
5: 30.0,
6: 30.0},
'line amount': {0: nan, 1: 21.0, 2: 21.0, 3: nan, 4: 260.0, 5: 30.0, 6: 30.0}}
【问题讨论】:
-
正在努力导入您的示例数据。您能否分享
df.to_dict()的输出,以便您的数据可以通过pd.DataFrame.from_dict()轻松导入(参见this questions)? -
第一张和第二张发票的0行不同,换位后会有不同的列。你想把它们放在同一个数据框中吗?
-
@Ynjxsjmh 是的,他们有不同的零行!所以我希望它们出现在描述 #3、数量 #3 等中。
-
@gofvonx 我会更新问题
-
@gofvonx 请让我知道它是否有效,因为它对我不起作用!