簡體   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