【发布时间】:2022-02-10 00:20:21
【问题描述】:
类似于Remove header row in Excel using pandas
我希望从 Excel 工作表中删除标题。
使用相同的示例但已编辑:
Company ABC
Account Name 1
Account No.1
Description group pair amount ... result
value1 value1 value1 value1 ... value1
value2 value2 value2 value2 ... value2
totals sum values
Account Name 2
Account No.2
Description group pair amount ... result
value3 value3 value3 value3 ... value3
value4 value4 value4 value4 ... value4
totals sum values
Sales
00234
Description group pair amount ... result
value5 value5 value5 value5 ... value5
value6 value6 value6 value6 ... value6
totals sum values
Inventory
00012345
Description group pair amount ... result
value7 value7 value7 value7 ... value7
value8 value8 value8 value8 ... value8
value9 value9 value9 value9 ... value9
totals sum values
我想把它连接起来变成像
cabinet_name group pair amount ... result
value1 value1 value1 value1 ... value1
value2 value2 value2 value2 ... value2
value3 value3 value3 value3 ... value3
value4 value4 value4 value4 ... value4
value5 value5 value5 value5 ... value5
value6 value6 value6 value6 ... value6
value7 value7 value7 value7 ... value7
value8 value8 value8 value8 ... value8
value9 value9 value9 value9 ... value9
我已经设法通过跳过行来删除顶部标题,例如(skiprows = 4)。但是,这仍然会留下像这样附加的其他标题和总计:
cabinet_name group pair amount ... result
value1 value1 value1 value1 ... value1
value2 value2 value2 value2 ... value2
totals sum values
Account Name 2
Account No.2
cabinet_name group pair amount ... result
value3 value3 value3 value3 ... value3
value4 value4 value4 value4 ... value4
totals sum values
Sales
00234
Description group pair amount ... result
value5 value5 value5 value5 ... value5
value6 value6 value6 value6 ... value6
totals sum values
Inventory
00012345
Description group pair amount ... result
value7 value7 value7 value7 ... value7
value8 value8 value8 value8 ... value8
value9 value9 value9 value9 ... value9
totals sum values
如果有人能告诉我如何用 pandas 清理这张表,我将不胜感激,因为我在网上看到的只是一张 Excel 表中的一张表。
如果我遗漏了什么,请告诉我,我很乐意编辑这个问题。
我认为这可能有用,
我在excel中清理文件的常规过程是先删除前4行,只留下
cabinet_name group pair amount ... result
value1 value1 value1 value1 ... value1
value2 value2 value2 value2 ... value2
totals *blank* *blank* sum values
Account Name 2
Account No.2
cabinet_name group pair amount ... result
value3 value3 value3 value3 ... value3
value4 value4 value4 value4 ... value4
totals *blank* *blank* sum values
Account Name 3
Account No.3
cabinet_name group pair amount ... result
value5 value5 value5 value5 ... value5
value6 value6 value6 value6 ... value6
totals *blank* *blank* sum values
然后我将过滤 group 或 pair 以在所述列中查找空白值并将其删除。
这是
的结果print(df_total.head(8).to_dict())
import datetime
from numpy import nan
{'Date': {0: nan, 1: datetime.datetime(2021, 1, 1, 0, 0), 2: datetime.datetime(2021, 1, 1, 0, 0), 3: datetime.datetime(2021, 1, 29, 0, 0), 4: datetime.datetime(2021, 1, 31, 0, 0), 5:
'Totals', 6: 'Net difference', 7: nan},
'Journal number': {0: nan, 1: 'AX009473', 2: 'AX009473', 3: 'AX003312', 4: 'AX009641', 5: nan, 6: nan, 7: nan},
'Voucher': {0: nan, 1: 'TSPN-2021-3', 2: 'TSPN-2021-3', 3: 'GBJ-2021-1', 4: 'VIT-2021-1', 5: nan, 6: nan, 7: nan},
'Posting type': {0: nan, 1: nan, 2: nan, 3: 'Ledger journal', 4: 'Ledger journal', 5: nan, 6: nan, 7: nan},
'Ledger account': {0: nan, 1: '00388211', 2: '00388211', 3: '00388211', 4: '00388211', 5: nan, 6: nan, 7: nan},
'Description': {0: nan, 1: nan, 2: nan, 3: 'DISBERSMENT FOR PETROL', 4: 'TAXI FAIR', 5: nan, 6: nan, 7: nan},
'Unnamed: 6': {0: nan, 1: nan, 2: nan, 3: nan, 4: nan, 5: nan, 6: nan, 7: nan},
'Unnamed: 7': {0: nan, 1: 'SGD', 2: 'USD', 3: 'SGD', 4: 'SGD', 5: nan, 6: nan, 7: nan},
'Amount in transaction currency': {0: 'Debit', 1: 13.55, 2: 0, 3: 0, 4: 5, 5: nan, 6: nan, 7: nan}, 'Unnamed: 9': {0: 'Credit', 1: 0, 2: 25, 3: 52, 4: 0, 5: nan, 6: nan, 7: nan},
'Amount in accounting currency': {0: 'Debit', 1: 13.55, 2: 0, 3: 0, 4: 5, 5: 18.55, 6: nan, 7: nan}, 'Unnamed: 11': {0: 'Credit', 1: 0, 2: 33.42, 3: 52, 4: 0, 5: 85.42, 6: 66.87, 7: nan},
'Amount in reporting currency': {0: 'Debit', 1: 13.55, 2: 0, 3: 0, 4: 5, 5: 18.55, 6: nan, 7: nan}, 'Unnamed: 13': {0: 'Credit', 1: 0, 2: 33.42, 3: 52, 4: 0, 5: 85.42, 6: nan, 7: nan},
'Unnamed: 14': {0: nan, 1: nan, 2: nan, 3: nan, 4: nan, 5: nan, 6: nan, 7: nan}, 'Unnamed: 15': {0: nan, 1: nan, 2: nan, 3: nan, 4: nan, 5: nan, 6: nan, 7: nan}, 'Unnamed: 16': {0: nan, 1: nan, 2: nan, 3: nan, 4: nan, 5: nan, 6: nan, 7: nan}}
VS
【问题讨论】:
-
@AndrewRyan 谢谢!马上去看看
-
嗯,这仍然只适用于每张 1 张桌子。我目前在同一张表中有多个表。除非我对这个问题的理解是错误的......您能否进一步详细说明? :)
标签: python pandas dataframe append concatenation