繁体   English   中英

读取 python 中的多个 excel 文件

[英]Reading multiple excel file in python

示例数据图像我是 python 的新手。 尝试读取文件夹中的多个 excel 文件并将其设置为单独的 DataFrame。

下面的代码正确吗?

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sys, os
import matplotlib.pyplot as plt 
from sklearn.model_selection import train_test_split
os.chdir(r'/Users/try/Documents/data')

df = ([])
def readdataframe(the_list):
    for element in the_list:
        print(element)
        df[element] = pd.read_excel(element, 'shee1')

readdataframe(["24032020_D_KWH.xlsx","25032020_D_KWH.xlsx","26032020_D_KWH.xlsx","27032020_D_KWH.xlsx"])

执行时出现以下错误

TypeError:列表索引必须是整数或切片,而不是 str

用 df=pd.DataFrame() 更改 df = ([]) 应该可以解决问题。 您没有将 df 定义为 pandas dataframe。

经过测试,这是我想出的:

import pandas as pd
import os

os.chdir(r"path to your excel files")

the_list = []

for root, dirs, files in os.walk(r"path to your excel files"):
    for file in files:
        if file.endswith('.xlsx'):
            the_list.append(file)

def readdataframe(the_list):
    df = pd.DataFrame() #define df as an empty pandas DataFrame
    for element in the_list:
        #print(element)
        df[element] = pd.read_excel(element, squeeze=True)
    return df

print(readdataframe(the_list))

Output:

   file1.xlsx  file2.xlsx  file3.xlsx
0           1           6          11
1           2           7          12
2           3           8          13
3           4           9          14
4           5          10          15

很抱歉,上传文件被认为是一种不好的做法,我不会下载它。 没有什么私人的,只是基本的数字卫生。

现在进入解释。 正如您可能在这一行中注意到的那样

df[element] = pd.read_excel(element, squeeze=True)

我已经添加

挤压=真

此参数所做的是将返回的 dataframe 转换为 pandas 系列(一维数组,将其视为您的一般 python 列表),因为我的每个文件和列表中只有 1 列

df[元素] =

语法将“元素”设置为 dataframe 中保存数据的列名。 因此,这种方法仅在您的文件中的数据是一维(只有 1 列) 时才有效。 .

如果您愿意获得多个数据框,这就是我的建议。

import pandas as pd
import os

os.chdir(r"path to your excel files")

the_list = []

for root, dirs, files in os.walk(r"path to your excel files"):
    for file in files:
        if file.endswith('.xlsx'):
            the_list.append(file)

def readdataframe(the_list):
    df_dict = {}
    for element in the_list:
        df_dict[element] = pd.read_excel(element)
    return df_dict

print(readdataframe(the_list))

这样,您将获得一个 python 字典(哈希表),其中包含您的 dataframe 对象作为值和文件名作为键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM