python 利用os模块和pandas模块将100个excel表合并成一个excel表,pd.concat函数

这里直接贴代码了
import os
import pandas as pd
dir = ‘XXX’
fn = os.listdir(dir)
index = 0
dfs = []
for name in fn:
print(index)
dfs.append(pd.read_excel(os.path.join(dir,name)))
index += 1
df = pd.concat(dfs)
print(len(df))
df.to_csv(‘XXX/total.csv’,index = False)
说说问题的关键函数为df = pd.concat(dfs)这句,还有这句os.path.join(dir,name)
pd.concat得到的是个dataframe,是合并的功能;代码里得到的是一个dataframe的列表,然后合并。
os.path.join(dir,name)是获取每一个文件的路径的意思。需要将文件路径和文件拼接,指向文件。

标题虽然是100个表,实际可以是n个表。思路是将100个表放入一个文件夹下,首先通过fn = os.listdir(dir)获取一个列表,内容为所有的100个表的名称。

这段代码里面我多加了一个记数的功能,可以看出合并的进度,通过没合并一个,记数一次,记数到100时证明合并完成。

df.to_csv具体参数参照官方帮助https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html,这里df.to_csv(‘XXX/total.csv’,index = False) index = False是不需要行名的意思。这里可以转成excel也可以,我是先转成csv,好处在于我的内容里有大于15位的数字,直接转成excel,那15位以后就会变成0,这样是克服了excel的缺点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值