以下のコードは必要なときに機能しますが、もっと良い方法が必要だと感じています。私はそれの中に毎日(ish)ファイルを含むフォルダを持っています。それらはすべて同じ接頭辞とファイル名として送信された日付を持ちます。特定の日には、ファイルはまったく送信されませんでした。私の仕事は毎月最後のファイルを読むことです(ほとんどの時間は最後の日ですが、4月の最後のファイルは28日、7月は29日などでした)。フォルダ内の各暦月の最新ファイルを見つける
これは、私が引き続き使用したいpathlibモジュールを使用しています。
files = sorted(ROOT.glob('**/*.csv*'))
file_dates = [Path(file.stem).stem.replace('prefix_', '').split('_') for file in files] #replace everything but a list of the date elements
dates = [pd.to_datetime(date[0] + '-' + date[1] + '-' + date[2]) for date in file_dates] #construct the proper date format
x = pd.DataFrame(dates)
x['month'] = x[0].dt.strftime('%Y-%m') + '-01'
max_value = x.groupby(['month'])[0].max().reset_index()
max_value[0] = max_value[0].dt.strftime('%Y_%m_%d')
monthly_files = [str(ROOT/'prefix_') + date + '.csv.xz' for date in max_value[0].values]
df = pd.concat([pd.read_csv(file, usecols=columns, sep='\t', compression='xz', dtype=object) for file in monthly_files])
私は、これは私がハンマー(パンダ)を持っているので、すべてが(私はデータフレームにすべてを回す)爪のように見える、そうであると信じています。私はまた、数年後にそれらを使用しないで理解をリストするのに慣れようとしています。
クール、ええ、私はパンダ以外のソリューションを見たいと思っていました。私もこれを試してみます。 – trench