私は過去14日間(毎朝午前)から特定の名前のすべてのcsvファイルを読み込むスクリプトを作成する必要がありますが、小さな立方体(ジュピター・ノートブックの中に)、その印は何もない。python pandasで過去14日間のcsvファイルを読み込んで連結します
def get_local_file(pdate, hour, path='/data/'):
"""Get date+hour processing file from local drive
:param pdate: str Processing date
:param hour: str Processing hour
:param path: str Path to file location
:return: Pandas DF Retrieved DataFrame
"""
sdate = pdate + '-' + str(hour)
for p_file in os.listdir(path):
if fnmatch.fnmatch(p_file, 'ABC_*'+sdate+'*.csv'):
return path+p_file
def get_files(pdate, path='/data/'):
hours = [time(i).strftime('%H') for i in range(24)]
fileList=[]
for hour in hours:
fileList.append(get_local_file(pdate, hour))
return fileList
end_datetime = datetime.combine(date.today(), time(0, 0, 0))
proc_datetime = end_datetime - timedelta(days=14)
while proc_datetime <= end_datetime:
proc_datetime += timedelta(days=1)
a = get_files(str(proc_datetime.date()).replace('-', '_'))
frame = pd.DataFrame()
list_ = []
for file_ in a:
if file_ != None:
df = pd.read_csv(file_,index_col=None, header=0, delimiter=';')
list_.append(df)
frame = pd.concat(list_)
whileループからコードを作成することは可能ですが、それははるかに簡単ですが、やり方はわかりません。
dfとフレームを直接連結しない理由:frame = pd.concat(df) – 2Obe
@ 2Obeこのエラーを返す:最初の引数はpandasオブジェクトのiterableでなければならず、 "DataFrame"タイプのオブジェクトを渡した – jovicbg
Soファイル名に日付も含まれていますか?または最後に修正された時間に基づいて選択されるべきかどうかを決定します。 –