1
我試圖將一堆CSV文件讀入單個熊貓數據幀。一些CSV具有多個日期的數據。我只需要每個CSV中的日期等於每個文件修改日期的數據。熊貓讀取CSV文件並基於文件過濾數據幀
這裏是我當前的嘗試:
import os
import datetime
import pandas as pd
from pandas import Series, DataFrame
import glob as glob
path =r'C:xxx'
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
def modification_date(filename):
t = os.path.getmtime(filename)
return datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d')
list_ = []
for file_ in allFiles:
df = pd.read_csv(file_,index_col=None, header=0)
df["DATE"] = pd.to_datetime(df["DATE"], format='%Y-%m-%d')
filedate = modification_date(allFiles)
df = df[(df["DATE"] == filedate)]
list_.append(df)
frame = pd.concat(list_)
frame.reset_index(inplace=True, drop=True)
失敗的原因是循環這裏創建修改日期的列表(因爲文件夾包含多個CSV的),該函數modification_date無法處理。錯誤是:「TypeError:強制轉換爲Unicode:需要字符串或緩衝區,找到列表」
我試圖圍繞如何修改此項目,以便每個CSV都單獨進行評估,但似乎無法獲得太多。
你爲什麼在'filedate = modification_date(allFiles)'而不是'filedate = modification_date(file_)'? –
哈,這是問題所在。感謝一雙清新銳利的眼睛。 – 1Sepi21