Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python熊猫(Dataframes)从多个excel文件中删除前4行_Python_Pandas_Dataframe - Fatal编程技术网

如何使用python熊猫(Dataframes)从多个excel文件中删除前4行

如何使用python熊猫(Dataframes)从多个excel文件中删除前4行,python,pandas,dataframe,Python,Pandas,Dataframe,目前,我正在编写一个程序,它结合了多个excel电子表格 我想知道如何在合并前从每个电子表格中删除前4行。下面是试图删除前4行的特定语句,但我得到一个错误 frames[0:] = [df.drop(df.index[[0,3]]) for df in frames[0:]] 下面是完整的程序 import tkinter as tk from tkinter import filedialog from pathlib import Path import pandas as pd roo

目前,我正在编写一个程序,它结合了多个excel电子表格

我想知道如何在合并前从每个电子表格中删除前4行。下面是试图删除前4行的特定语句,但我得到一个错误

frames[0:] = [df.drop(df.index[[0,3]]) for df in frames[0:]]
下面是完整的程序

import tkinter as tk
from tkinter import filedialog
from pathlib import Path
import pandas as pd

root = tk.Tk()
root.withdraw()

files = filedialog.askopenfilenames()
print("--------------")
print(files)
ExcelFileNames = [Path(x).name for x in files]
print("--------------")
print(type(ExcelFileNames))
print("--------------")
print(ExcelFileNames)
print("--------------")
print (ExcelFileNames[0])
print("--------------")
print("Number of files is:", len(ExcelFileNames))

# read them in
excels = [pd.ExcelFile(name) for name in ExcelFileNames]

# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in excels]


frames[0:] = [df.drop(df.index[[0,3]]) for df in frames[0:]]
# delete the first row for all frames except the first
# i.e. remove the header row -- assumes it's the first
frames[1:] = [df[1:] for df in frames[1:]]

# concatenate them..
combined = pd.concat(frames)

# write it out
combined.to_excel("DNcombined.xlsx", header=False, index=False)
IIUC

您可以添加到参数中,在循环列表时跳过这些行

# read them in
excels = [pd.ExcelFile(name) for name in ExcelFileNames]

# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None, skiprows=4) for x in excels]

这起作用了,我将skiprows=14更改为skiprows 4,以跳过前4个。当我使用多个数据帧时,我会继续尝试让dropframes正常工作,但是我真的很感谢你的帮助@JhangirAwan您可以使用
.iloc
并将其过滤掉,但是如果不查看示例数据的外观,很难说。对不起,我以为我读了14!为什么不
df[3:][/code>?