web-dev-qa-db-ja.com

複数のExcelファイル(xlsx)を一緒にpython

import pandas as pd
import os
import glob


all_data = pd.DataFrame()
for f in glob.glob("output/test*.xlsx")
    df = pd.read_Excel(f)
    all_data = all_data.append(df, ignore_index=True)

複数のxlsxファイルを1つのxlsxに入れたい。 Excelファイルはoutput/testフォルダーにあります。列はすべて同じですが、行を連結したいと思います。上記のコードは機能していないようです

5
user3821872

all_dataをリストとします。

all_data = []
for f in glob.glob("output/test/*.xlsx"):
    all_data.append(pd.read_Excel(f))

ここで、pd.concatを呼び出します。

df = pd.concat(all_data, ignore_index=True)

すべての列名が同じであることを確認してください。同じでない場合、このソリューションは機能しません。


上記のmapループのforバージョンを使用することもできます。

g = map(pd.read_Excel, glob.glob("output/test/*.xlsx"))
df = pd.concat(list(g), ignore_index=True)

または、他の回答に示されているlist comprhensionメソッド。

8
cs95

使用する list comprehension + concat

all_data = [pd.read_Excel(f) for f in glob.glob("output/test/*.xlsx")]
df = pd.concat(all_data, ignore_index=True)
4
jezrael