使用pandas组合/合并2个不同的Excel文件/工作表

Mar*_*k K 11 python excel pandas

我试图结合2个不同的Excel文件.(感谢帖子将多个excel文件导入python pandas并将它们连接成一个数据帧)

我到目前为止的工作是:

import os
import pandas as pd

df = pd.DataFrame()

for f in ['c:\\file1.xls', 'c:\\ file2.xls']:
    data = pd.read_excel(f, 'Sheet1')
    df = df.append(data)

df.to_excel("c:\\all.xls")
Run Code Online (Sandbox Code Playgroud)

这是他们的样子.

在此输入图像描述

但是我想:

  1. 排除每个文件的最后几行(即File1.xls中的row4和row5; File2.xls中的row7和row8).
  2. 添加一列(或覆盖列A)以指示数据的来源.

例如:

在此输入图像描述

可能吗?谢谢.

beh*_*uri 14

对于num.1,你可以在这里skip_footer说明; 或者,或者做

data = data.iloc[:-2]
Run Code Online (Sandbox Code Playgroud)

一旦你读了数据.

对于num.2,你可以这样做:

from os.path import basename
data.index = [basename(f)] * len(data)
Run Code Online (Sandbox Code Playgroud)

另外,最好将所有数据帧放在一个列表中,然后将concat它们放在最后; 就像是:

df = []
for f in ['c:\\file1.xls', 'c:\\ file2.xls']:
    data = pd.read_excel(f, 'Sheet1').iloc[:-2]
    data.index = [os.path.basename(f)] * len(data)
    df.append(data)

df = pd.concat(df)
Run Code Online (Sandbox Code Playgroud)

  • 我不得不说,华丽.behzad.nouri,你真漂亮! (2认同)