最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)讀取文件夾里Excel文件里的數(shù)據(jù)

 更新時間:2025年12月17日 09:21:00   作者:Dfreedom.  
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)讀取文件夾里Excel文件里的數(shù)據(jù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

場景描述

已知:文件夾路徑、Excel文件名、存放數(shù)據(jù)的Sheet名

目標:讀取目標文件夾里目標Excel里面目標Sheet里的數(shù)據(jù)

思路

方法一:利用Pandas模塊

import pandas as pd
import os

#-----獲取文件夾中所有的Excel文件名-----#
path ='/Users/Desktop/test.data/'  #輸入文件夾路徑
for root,dirs,files in os.walk(path):    #files是文件夾里所有的文件名
    for i in range(len(files)):
        if '.xlsx' not in files[i]:      #刪除不是Excel格式的文件名
            files[i] = []
        else:
            files[i] = files[i]
files.remove([])
files.sort()                         #文件名排序

#-----獲取目標Excel里目標sheet里的表頭和數(shù)據(jù)-----#
file_path = path+files[0]          #獲取目標Excel的路徑
raw_data = pd.read_excel(file_path, sheet_name = None,header = None) #獲取該路徑下,Excel里面所有的數(shù)據(jù),數(shù)據(jù)類型是字典,表格名是鍵,表格里的數(shù)據(jù)是值
sheet_names = list(raw_data.keys()) #獲取所有表格名
target_sheet_data = raw_data[sheet_names[0]] # #獲取目標表格的數(shù)據(jù)
header_name = target_sheet_data.values[0,:] #獲取目標表格名的表頭名
target_data = target_sheet_data.values[1:len(target_sheet_data),:] #獲取目標表格除表頭外的數(shù)據(jù)
print(header_name)
print(target_data)

方法二:利用xlrd模塊

import xlrd as xd                                                                      
import numpy as np                                                                     
import os                                                                              
                                                                                       
#-----獲取文件夾中所有的Excel文件名-----#                                                          
path ='/Users/Desktop/test.data/'         #輸入文件夾路徑                                      
for root,dirs,files in os.walk(path):    #files是文件夾里所有的文件名                             
    for i in range(len(files)):                                                        
        if '.xlsx' not in files[i]:      #刪除不是Excel格式的文件名                              
            files[i] = []                                                              
        else:                                                                          
            files[i] = files[i]                                                        
files.remove([])                                                                       
files.sort()                         #文件名排序                                            
                                                                                       
#-----獲取目標Excel里目標sheet里的表頭和數(shù)據(jù)-----#                                                   
file_path = path+files[0]          #獲取目標Excel的路徑                                       
data =xd.open_workbook (file_path) #打開路徑下的Excel                                        
sheet_names = data.sheet_names()  # 獲取目標Ecele里所有工作表名稱                                  
target_sheet_data = data.sheet_by_name(sheet_names[0])  #獲取目標表格的數(shù)據(jù)                     
header_name = target_sheet_data .row_values(0) #獲取目標表格的表頭名                             
target_data = []                                                                       
for i in range(target_sheet_data .nrows-1):                                            
    target_data.append(target_sheet_data .row_values(i+1))  #獲取目標表格除表頭以外的數(shù)據(jù),列表數(shù)據(jù)       
target_data = np.array(target_data) #轉換成數(shù)組                                               
print(header_name)                                                                     
print(target_data)                                                                     

方法補充

1.python批量讀取文件夾中的所有excel文件

大數(shù)據(jù)處理經(jīng)常要用到一堆表格,然后需要把數(shù)據(jù)導入一個list中進行各種算法分析,簡單講一下自己的做法:

如何讀取excel文件

網(wǎng)上的版本很多,在xlrd模塊基礎上,找到一些源碼:

import xdrlib ,sys
import xlrd
def open_excel(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx"):
data = xlrd.open_workbook(file)
return data
#根據(jù)索引獲取Excel表格中的數(shù)據(jù) 參數(shù):file:Excel文件路徑 colnameindex:表頭列名所在行的所以 ,by_index:表的索引
def excel_table_byindex(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx",colnameindex=0,by_index=0):
data = open_excel(file)
table = data.sheets()[by_index]
nrows = table.nrows #行數(shù)
ncols = table.ncols #列數(shù)
colnames = table.row_values(colnameindex) #某一行數(shù)據(jù)
list =[]
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
#根據(jù)名稱獲取Excel表格中的數(shù)據(jù) 參數(shù):file:Excel文件路徑 colnameindex:表頭列名所在行的所以 ,by_name:Sheet1名稱
def excel_table_byname(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx",colnameindex=0,by_name=u'Sheet1'):
data = open_excel(file)
table = data.sheet_by_name(by_name)
nrows = table.nrows #行數(shù)
colnames = table.row_values(colnameindex) #某一行數(shù)據(jù)
list =[]
for rownum in range(1,nrows):
row = table.row_values(rownum)
if row:
app = {}
for i in range(len(colnames)):
app[colnames[i]] = row[i]
list.append(app)
return list
def main():
tables = excel_table_byindex()
for row in tables:
print(row)
tables = excel_table_byname()
for row in tables:
print(row)
if __name__=="__main__":
main()

最后一句是重點,所以這里也給代碼人點個贊!

最后一句讓代碼里的函數(shù)都可以被復用,簡單地說:假設文件名是a,在程序中import a以后,就可以用a.excel_table_byname()和a.excel_table_byindex()這兩個超級好用的函數(shù)了。

然后是遍歷文件夾取得excel文件以及路徑:,原創(chuàng)代碼如下:

import os
import xlrd
import test_wy

xpath="E:/唐偉捷/電力/電力系統(tǒng)總文件夾/舟山電力"
xtype="xlsx"
typedata = []
name = []
raw_data=[]
file_path=[]
def collect_xls(list_collect,type1):

#取得列表中所有的type文件
for each_element in list_collect:
if isinstance(each_element,list):
collect_xls(each_element,type1)
elif each_element.endswith(type1):
typedata.insert(0,each_element)
return typedata

#讀取所有文件夾中的xls文件
def read_xls(path,type2):

#遍歷路徑文件夾
for file in os.walk(path):
for each_list in file[2]:
file_path=file[0]+"/"+each_list

#os.walk()函數(shù)返回三個參數(shù):路徑,子文件夾,路徑下的文件,利用字符串拼接file[0]和file[2]得到文件的路徑
name.insert(0,file_path)
all_xls = collect_xls(name, type2)

#遍歷所有type文件路徑并讀取數(shù)據(jù)
for evey_name in all_xls:
xls_data = xlrd.open_workbook(evey_name)
for each_sheet in xls_data.sheets():
sheet_data=test_wy.excel_table_byname(evey_name,0,each_sheet.name)

#請參考讀取excel文件的代碼
raw_data.insert(0, sheet_data)
print(each_sheet.name,":Data has been done.")
return raw_data
a=read_xls(xpath,xtype)
print("Victory")

2.Python使用pandas讀取目錄下所有Excel文件并拼接

首先,我們需要導入pandas庫和os庫。pandas庫用于數(shù)據(jù)處理,而os庫用于操作文件系統(tǒng)。

在Python中,我們可以使用以下代碼來讀取指定目錄下的所有Excel文件:

import pandas as pd
import os
# 指定目錄路徑
dir_path = '/path/to/directory'
# 獲取目錄下所有Excel文件名
file_names = [f for f in os.listdir(dir_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 創(chuàng)建一個空的DataFrame用于存儲所有數(shù)據(jù)
df_all = pd.DataFrame()
# 循環(huán)讀取每個Excel文件,并將它們拼接到df_all中
for file_name in file_names:
file_path = os.path.join(dir_path, file_name)
df = pd.read_excel(file_path)
df_all = df_all.append(df, ignore_index=True)

在上面的代碼中,我們首先指定了要讀取的目錄路徑。然后,我們使用os庫的listdir函數(shù)獲取該目錄下所有以.xlsx或.xls為擴展名的文件名。接下來,我們創(chuàng)建了一個空的DataFrame,用于存儲所有數(shù)據(jù)。然后,我們循環(huán)讀取每個Excel文件,并使用pandas的read_excel函數(shù)將其轉換為DataFrame對象。最后,我們將每個DataFrame對象拼接到df_all中。

注意,在拼接DataFrame時,我們使用了ignore_index=True參數(shù)。這是因為當我們將多個DataFrame拼接在一起時,默認情況下會保留原來的行索引,這可能會導致重復的行索引。使用ignore_index=True參數(shù)可以重新設置行索引,確保每個DataFrame都有唯一的行索引。

另外需要注意的是,如果目錄下有多個Excel文件,并且這些文件有相同的列名,那么在拼接時可能會導致列名重復。為了避免這種情況,可以在讀取每個Excel文件后將其重命名,以確保每個文件的列名都是唯一的??梢允褂靡韵麓a將每個文件的列重命名:

df = df.rename(columns=lambda x: f'{file_name}_{x}')

在上面的代碼中,我們使用了lambda函數(shù)來為每個文件的列名添加一個前綴,該前綴是文件名加上下劃線。這樣就可以確保每個文件的列名都是唯一的。
通過以上步驟,我們就可以使用pandas庫在Python中讀取指定目錄下的所有Excel文件,并將它們拼接成一個大的數(shù)據(jù)表

到此這篇關于Python實現(xiàn)讀取文件夾里Excel文件里的數(shù)據(jù)的文章就介紹到這了,更多相關Python讀取Excel數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解django中視圖函數(shù)的FBV和CBV

    詳解django中視圖函數(shù)的FBV和CBV

    FBV是指視圖函數(shù)以普通函數(shù)的形式,CBV是指視圖函數(shù)以類的方式,這篇文章主要介紹了django中視圖函數(shù)的FBV和CBV,需要的朋友可以參考下
    2022-08-08
  • django允許外部訪問的實例講解

    django允許外部訪問的實例講解

    今天小編就為大家分享一篇django允許外部訪問的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中實現(xiàn)JSON數(shù)據(jù)讀寫的編程實戰(zhàn)指南

    Python中實現(xiàn)JSON數(shù)據(jù)讀寫的編程實戰(zhàn)指南

    JSON 全稱是 JavaScript Object Notation 即 JavaScript 對象表示法,是一種輕量級的數(shù)據(jù)交換格式,下面就帶大家深入理解 JSON 的概念以及在 Python 中的讀寫操作方法吧
    2025-11-11
  • python制作企業(yè)郵箱的爆破腳本

    python制作企業(yè)郵箱的爆破腳本

    這篇文章主要介紹了python制作企業(yè)郵箱的爆破腳本的相關資料,需要的朋友可以參考下
    2016-10-10
  • Python Matplotlib簡易教程(小白教程)

    Python Matplotlib簡易教程(小白教程)

    這篇文章主要介紹了Python Matplotlib簡易教程(小白教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 利用Python開發(fā)實現(xiàn)簡單的記事本

    利用Python開發(fā)實現(xiàn)簡單的記事本

    最近想對python加深學習一下,同時也是想試著做一些東西,所以使用python,結合Tkinter來做一個簡單的跨平臺記事本。最終實現(xiàn)的記事本如下,也算是麻雀雖小,五臟俱全了,之后也是會繼續(xù)完善的。文中通過圖文及示例代碼介紹的很詳細,有需要的朋友們可以參考借鑒。
    2016-11-11
  • Pandas?Query方法使用深度總結

    Pandas?Query方法使用深度總結

    大多數(shù)Pandas用戶都熟悉iloc[]和loc[]索引器方法,用于檢索行和列。但是隨著檢索數(shù)據(jù)的規(guī)則變得越來越復雜,這些方法也隨之變得更加復雜而臃腫。本文將展示如何使用?query()?方法對數(shù)據(jù)框執(zhí)行查詢,感興趣的可以了解一下
    2022-07-07
  • 如何使用python socket模塊實現(xiàn)簡單的文件下載

    如何使用python socket模塊實現(xiàn)簡單的文件下載

    這篇文章主要介紹了如何使用python socket模塊實現(xiàn)簡單的文件下載,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • Python使用logging實現(xiàn)多進程安全的日志模塊

    Python使用logging實現(xiàn)多進程安全的日志模塊

    這篇文章主要為大家詳細介紹了Python如何使用標準庫logging實現(xiàn)多進程安全的日志模塊,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2024-01-01
  • python獲取代理IP的實例分享

    python獲取代理IP的實例分享

    今天小編就為大家分享一篇python獲取代理IP的實例分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

北海市| 赤壁市| 金川县| 枞阳县| 司法| 遂宁市| 封丘县| 沿河| 绥滨县| 长治县| 新绛县| 鹰潭市| 两当县| 泸水县| 澄江县| 滕州市| 平阴县| 江西省| 九台市| 常德市| 二手房| 鲁甸县| 长丰县| 左贡县| 绥滨县| 潮安县| 宽甸| 嘉禾县| 专栏| 文登市| 隆德县| 凌源市| 来凤县| 深泽县| 新密市| 武宣县| 临沧市| 永靖县| 泾川县| 定边县| 中宁县|