将多个excel文件从特定路径(具有特定工作表名称)读入单个Pandas数据框

zd287kbt  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(90)

我怎么能只读"2g“,”3g“,所有excel文件中的'4g'存在于某个路径中,并将它们写入三个不同的数据框。所有2g工作表应存储在一个名为(2g)所有3g表应存储在名为(3g)所有4g表格应存储在一个名为(4g)的Pandas数据框中,并遵循excel文件的屏幕截图:

以及我想从每个excel文件中读取的工作表,如下图所示:

mcvgt66p

mcvgt66p1#

可以将read_excel与多个图纸名称一起使用:

import pandas as pd

data2g = []
data3g = []
data4g = []

for xlsx in pathlib.Path('mobile').glob('*.xlsx'):
    df2g, df3g, df4g = pd.read_excel(xlsx, sheet_name=['2G', '3G', '4G']).values()
    data2g.append(df2g)
    data3g.append(df3g)
    data4g.append(df4g)

df2g = pd.concat(data2g, ignore_index=True)
df3g = pd.concat(data3g, ignore_index=True)
df4g = pd.concat(data4g, ignore_index=True)

如您所见,您可以使用循环来提高可读性:

import pandas as pd
from collections import defaultdict

data = defaultdict(list)
for xlsx in pathlib.Path('mobile').glob('*.xlsx'):
    out = pd.read_excel(xlsx, sheet_name=['2G', '3G', '4G'])
    for k, v in out.items():
        data[k].append(v)
df2g, df3g, df4g = [pd.concat(data[k], ignore_index=True) for k in data]

相关问题