Python新手,请温柔。我有多个Excel电子表格的两个“中间部分”中的数据,我想将其隔离到一个pandas数据帧中。以下是数据屏幕截图的链接。 在每个文件中,我的标题位于第4行,数据位于第5-15行,列B:O。然后,标题和数据继续第21行的标题,第22-30行的数据,列B:L。我想从第二组移动标题和数据,并将它们附加到第一组数据的末尾。
此代码捕获第4行的标头和列B:O中的数据,但捕获标头下的所有行,包括第二个标头和第二组数据。如何移动第二组数据并将其附加到第一组数据之后?
path =r'C:\Users\sarah\Desktop\Original'
allFiles = glob.glob(path + "/*.xls")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
df = pd.read_excel(file_,sheetname="Data1", parse_cols="B:O",index_col=None, header=3, skip_rows=3 )
list_.append(df)
frame = pd.concat(list_)
答案 0 :(得分:1)
如果您的所有Excel文件具有相同的行数且这是一次性操作,您只需在read_excel
中对这些数字进行硬编码即可。如果没有,这将有点棘手,但你几乎遵循相同的程序:
for file_ in allFiles:
top = pd.read_excel(file_, sheetname="Data1", parse_cols="B:O", index_col=None,
header=4, skip_rows=3, nrows=14) # Note the nrows kwag
bot = pd.read_excel(file_, sheetname="Data1", parse_cols="B:L", index_col=None,
header=21, skip_rows=20, nrows=14)
list_.append(top.join(bot, lsuffix='_t', rsuffix='_b'))