簡體   English   中英

使用python從多個文件導入數據

[英]Importing data from multiple files using python

我必須制作一個應用程序,我必須在其中導入給定文件夾中的所有 excel 文件並將其添加到數據框中。 數據框應如下所示:

預期數據幀

如圖所示,數據框的列之一是文件的名稱。

我已成功在最終數據框中添加了該列,代碼如下:

 import pandas as pd import os import shutil import re path = 'C:/Users/Administrator/Desktop/Zerodha/Day2' lst = os.listdir(path) files = [os.path.join(path,x) for x in lst] print(lst) dataframes_lst = [] for file in files: filename = file.split('/')[-1] dataframe = pd.read_csv(file, usecols=[0,4], names ["date",filename],index_col=["date"]) dataframes_lst.append(dataframe) df = pd.concat(dataframes_lst, axis=1) print(df) df.to_csv('data.csv')

使用此代碼獲得的數據框如下所示:

獲得的數據幀

作為參考,我將附上其中一個 excel 文件的片段:

Excel 片段

同樣可以看到,獲得了許多 nan 值。 我嘗試通過使用 pd.dropna(inplace = True) 函數以及按照本文中的建議操作來刪除它們:

  1. 如何刪除某列中值為 NaN 的 Pandas DataFrame 行

但是生成的數據幀仍然包含 nan 值。

關於

我的疑問是如何遍歷目錄中的所有文件並以所需格式提取每個文件的數據

您可以遍歷目錄中的所有文件並將數據和文件名提取為數據幀的標題,如下所示:

import pandas as pd
import os

path = './data'
lst = os.listdir('./data/')
files = [os.path.join(path,el) for el in lst]

輸出文件

和example.xlsx的結構是:

excel_結構

dataframes_lst = []

for file in files:
    filename = file.split('/')[-1]
    dataframe = pd.read_excel(file, usecols=[3], names=[filename])
    dataframes_lst.append(dataframe)

df = pd.concat(dataframes_lst, axis=1)
print(df)

這里,數據幀沿axis=1連接, print(df)的輸出是

output_final_df

嘗試這個:

import pandas as pd    
from pathlib import Path
read_path = Path('C:/Users/Administrator/Desktop/Zerodha/Day2')
    
df = pd.concat([pd.read_csv(path) for path in read_path.glob('*.csv')])

如果您想從 excel 中讀取,只需使用 read_excel 並將模式更改為 '*.xlsx'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM