[英]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 文件的片段:
同樣可以看到,獲得了許多 nan 值。 我嘗試通過使用 pd.dropna(inplace = True) 函數以及按照本文中的建議操作來刪除它們:
但是生成的數據幀仍然包含 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的結構是:
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)
的輸出是
嘗試這個:
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.