我是python中excel / csv操作的新手。
我有1k + .xlsx文件。每个excel文件有2张,sheet1.csv,sheet2.csv(表单名称在所有.xlsx中都相同)。从所有excel文件中,我必须收集sheet1.csv并且必须使用所有工作表创建新的excel。
来自一个excel的Sheet1.scv如下所示:
Name Age Gender State City
N1 22 M Cal ABC
N2 32 M NC Dur
来自另一个excel的sheet1.csv如下所示:
Name Age Gender State City
N3 26 F KLM PQR
N4 23 M SC STM
我正在寻找每个工作表数据之间的输出,包括空行:
Name Age Gender State City
N1 22 M Cal ABC
N2 32 M NC Dur
N3 26 F KLM PQR
N4 23 M SC STM
我试过这个但却无法理解如何继续进行上述工作:
for excel in glob.glob(os.path.join(os.getcwd(), "*.xlsx")):
df=pd.read_excel(excel,sheet_name=0) #sheet1.csv is the first sheet in all excel
df.to_excel('Final.xlsx')
此代码仅保留excel文件的最后csv数据。请帮助修复上述问题陈述。
答案 0 :(得分:1)
是否可以,但integer
的列将转换为float
s:
dfs = []
for excel in glob.glob(os.path.join(os.getcwd(), "*.xlsx")):
df=pd.read_excel(excel,sheet_name=0) #sheet1.csv is the first sheet in all excel
#if really need empty row
df = df.append(pd.DataFrame([np.nan] * len(df.columns)))
dfs.append(df)
df = pd.concat(dfs)
df.to_excel('Final.xlsx')
答案 1 :(得分:1)
您可以执行以下操作来连接给定路径中的所有Excel。
allFiles = glob.glob(os.path.join(os.getcwd(), "*.xlsx"))
frame = pd.DataFrame()
list_ = []
append = list_.append
for file_ in allFiles:
df = pd.read_excel(file_,sheet_name=0)
append(df)
frame = pd.concat(list_)