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

基于Python讀取多個(gè)excel豎向拼接為一個(gè)excel的實(shí)現(xiàn)方法

 更新時(shí)間:2025年09月16日 08:49:25   作者:袁袁袁袁滿  
在Python中,可以使用pandas庫(kù)結(jié)合glob模塊來(lái)遍歷讀取多個(gè)Excel文件,并將它們豎向拼接為一個(gè)DataFrame對(duì)象,以下是完整的實(shí)現(xiàn)方法,需要的朋友可以參考下

在Python中,可以使用pandas庫(kù)結(jié)合glob模塊來(lái)遍歷讀取多個(gè)Excel文件,并將它們豎向拼接為一個(gè)DataFrame對(duì)象。以下是完整的實(shí)現(xiàn)方法:

方法1:使用glob匹配文件 + pd.concat()

import pandas as pd
import glob

# 1. 獲取所有Excel文件路徑(支持.xlsx和.xls)
excel_files = glob.glob('*.xlsx') + glob.glob('*.xls')  # 當(dāng)前目錄下所有Excel文件
# 或者指定路徑:glob.glob('/path/to/files/*.xlsx')

# 2. 讀取并拼接所有Excel文件
dfs = []
for file in excel_files:
    df = pd.read_excel(file)  # 可以添加參數(shù)如sheet_name='Sheet1'
    dfs.append(df)

# 3. 豎向拼接所有DataFrame
result = pd.concat(dfs, ignore_index=True)

# 4. 查看結(jié)果
print(result)

# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

方法2:使用列表推導(dǎo)式(更簡(jiǎn)潔)

import pandas as pd
import glob

# 讀取并拼接所有Excel文件
result = pd.concat([
    pd.read_excel(f) for f in glob.glob('*.xlsx') + glob.glob('*.xls')
], ignore_index=True)

print(result)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

方法3:處理多個(gè)Sheet的情況

如果需要讀取每個(gè)Excel文件的多個(gè)Sheet:

import pandas as pd
import glob

dfs = []
for file in glob.glob('*.xlsx'):
    # 獲取所有Sheet名稱
    sheets = pd.ExcelFile(file).sheet_names
    for sheet in sheets:
        df = pd.read_excel(file, sheet_name=sheet)
        dfs.append(df)

result = pd.concat(dfs, ignore_index=True)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

高級(jí)用法:添加文件來(lái)源列

如果需要知道每行數(shù)據(jù)來(lái)自哪個(gè)文件:

dfs = []
for file in glob.glob('*.xlsx'):
    df = pd.read_excel(file)
    df['source_file'] = file  # 添加來(lái)源文件列
    dfs.append(df)

result = pd.concat(dfs, ignore_index=True)
# 保存為一個(gè)xlsx
result.to_excel('匯總.xlsx')

注意事項(xiàng)

  1. 內(nèi)存管理:如果文件很大或很多,建議分批處理或使用chunksize參數(shù)
  2. 列一致性:確保所有Excel文件的列結(jié)構(gòu)相同,否則拼接后會(huì)出現(xiàn)很多NaN值
  3. 性能優(yōu)化:對(duì)于大量文件,可以使用tqdm顯示進(jìn)度條:
from tqdm import tqdm
dfs = []
for file in tqdm(glob.glob('*.xlsx')):
    dfs.append(pd.read_excel(file))
result = pd.concat(dfs, ignore_index=True)
 # 保存為一個(gè)xlsx
 result.to_excel('匯總.xlsx')
  • 異常處理:添加try-except塊處理?yè)p壞的文件
dfs = []
for file in glob.glob('*.xlsx'):
    try:
        dfs.append(pd.read_excel(file))
    except Exception as e:
        print(f"Error reading {file}: {str(e)}")

完整示例(推薦)

import pandas as pd
import glob

def read_and_concat_excels(pattern='*.xlsx', sheet_name=0, add_source=False):
    """
    讀取并拼接多個(gè)Excel文件
    
    參數(shù):
        pattern: 文件匹配模式 (如 'data/*.xlsx')
        sheet_name: 要讀取的Sheet名稱或索引
        add_source: 是否添加來(lái)源文件列
        
    返回:
        拼接后的DataFrame
    """
    dfs = []
    for file in glob.glob(pattern):
        try:
            df = pd.read_excel(file, sheet_name=sheet_name)
            if add_source:
                df['source_file'] = file
            dfs.append(df)
        except Exception as e:
            print(f"跳過(guò)文件 {file}: {str(e)}")
    
    if not dfs:
        raise ValueError("沒(méi)有找到可讀取的Excel文件")
    
    return pd.concat(dfs, ignore_index=True)

# 使用示例
combined_df = read_and_concat_excels(pattern='input_files/*.xlsx', add_source=True)
combined_df.to_excel('匯總.xlsx', index=False)

這種方法既健壯又靈活,可以處理大多數(shù)Excel文件拼接的場(chǎng)景。

到此這篇關(guān)于基于Python讀取多個(gè)excel豎向拼接為一個(gè)excel的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)Python讀取多個(gè)excel拼接為一個(gè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

大英县| 元阳县| 宁德市| 靖边县| 金门县| 北票市| 临沂市| 乡城县| 札达县| 宁远县| 日喀则市| 吴旗县| 江都市| 延津县| 黄平县| 泌阳县| 合山市| 郁南县| 犍为县| 闸北区| 南江县| 乌拉特前旗| 凤凰县| 通山县| 高邮市| 昌宁县| 玉田县| 陆河县| 桐城市| 洪雅县| 吴忠市| 临湘市| 临猗县| 舞钢市| 五家渠市| 普格县| 仲巴县| 曲沃县| 灵璧县| 井冈山市| 江门市|