2017-01-08 7 views
1

私はリストを持っています。これは、例えばXと呼ばれます。 Xには、特定のディレクトリ内にいくつかのファイル名があります。たとえば:文字列のリストから特定の要素を抽出し、Pandasで日付時刻に変換

X = ['director_send_20140212', 'send_help20150315', 'hello_jeep_20160322'....etc] 

は今、私は日付によってインデックスデータフレームにそれを使用することができますので、このこれらのリストのうち、日付を抽出し、日付の日時インデックスに変換します。だから上の例から私は3つの日付しか望んでいませんが、実際にはそれはもっと大きなファイル名の集まりです

日付がすべて20(つまり2000年以降)から始まり、 20はファイル名の他の場所に表示されます。さらに、書式はyyyymmdd/です。

だから、pandasによって提供されたdatetimesインデックスを使用して日付の範囲を作成したい!

答えて

1

私は、ファイル名の命名規則についていくつかの仮定をしています。主に、日付はアンダースコアの後のデータの最後の部分であり、最後の部分には日付ではない数値データが含まれていないことに注意してください。

言われて、ここでの例のリスト内包されていること:

>>> from datetime import datetime 
>>> [datetime.strptime(''.join(c for c in file_name.split('_')[-1] if c.isdigit()), "%Y%m%d") for file_name in X] 
[datetime.datetime(2014, 2, 12, 0, 0), datetime.datetime(2015, 3, 15, 0, 0), datetime.datetime(2016, 3, 22, 0, 0)] 
関連する問題