我有很多不同格式的excel文件。其中一些看起来像这样,这是正常的,一个标题可以读入pandas
。
# First Column Second Column Address City State Zip
1 House The Clairs 4321 Main Street Chicago IL 54872
2 Restaurant The Monks 6323 East Wing Miluakee WI 45458
其中一些是带有多个标题的各种格式,
Table 1
Comp ID Info
# First Column Second Column Address City State Zip
1 Office The Fairs 1234 Main Street Seattle WA 54872
2 College The Blanks 4523 West Street Madison WI 45875
3 Ground The Brewers 895 Toronto Street Madrid IA 56487
Table2
Comp ID Info
# First Column Second Column Address City State Zip
1 College The Banks 568 Old Street Cleveland OH 52125
2 Professional The Circuits 695 New Street Boston MA 36521
在Excel中看起来像这样(我在这里粘贴图像以显示它在Excel中的实际外观),
如上所示,标题有三种不同的级别。确保每个文件都有一行以First Column
开头。
对于像这样的单个文件,我可以像下面这样阅读,这很好。
xls = pd.ExcelFile(r'mypath\myfile.xlsx')
df = pd.read_excel('xls', 'mysheet', header=[2])
但是,我需要这样的最终数据框(附加只有一个标题的文件),
First Column Second Column Address City State Zip
0 House The Clair 4321 Main Street Chicago IL 54872
1 Restaurant The Monks 6323 East Wing Milwaukee WI 45458
2 Office The Fairs 1234 Main Street Seattle WA 54872
3 College The Blanks 4523 West Street Madison WI 45875
4 Ground The Brewers 895 Toronto Street Madrid IA 56487
5 College The Banks 568 Old Street Cleveland OH 52125
6 Professional The Circuits 695 New Street Boston MA 36521
由于我有很多文件,我想读取文件夹中的每个文件,并通过从一行只获取一个标题来清理它们。如果我知道行的索引位置,我需要作为头,我可以简单地做这样的post。
但是,由于其中一些文件可能有多个标题(我在上面的示例中显示了2个额外的标题,有些标题有4个标题),我想迭代遍历文件并设置以{{1开头的行在文件的开头是标题。
此外,我想删除位于First Column
文件中间的那些行。
在创建以First Column
开头的已清理文件标题后,我可以附加每个数据框并创建我需要的输出文件。我怎样才能在First Column
中实现这一目标?任何帮助或建议都会很棒。