2017-06-21 2 views
0

24-40の新しいファイルで毎日更新して、約100のcsvファイル(この時点では、明日はより多くなります)が1か所にあります。だから、何単に過去の日からファイルをインポートするための最良の方法が、私は、ファイル名を配置する必要があり、それ以外の方法です:timestempの範囲でPythonでcsvをインポート

data = pd.read_csv('/data/testingfile-PM_18707-2017_06_14-05_03_23__382.csv', delimiter = ';', low_memory=False) 
data1 = pd.read_csv('/data/testingfile--PM_18707-2017_06_14-06_30_56__131.csv', delimiter = ';', low_memory=False) 

すると、一部のタイムスタンプ認識機能を記述することが可能ですか?

from datetime import time 
from datetime import date 
from datetime import datetime 
import fnmatch 
def get_local_file(date, hour, path='data/'): 
     """Get date+hour processing file from local drive 

     :param date: str Processing date 
     :param hour: str Processing hour 
     :param path: str Path to file location 
     :return: Pandas DF Retrieved DataFrame 
     """ 
hour = [time(i).strftime(%H) for i in range(24)] 
sdate = date.replace('-', '_') + "-" + str(hour) 
for p_file in os.listdir(path): 
     if fnmatch.fnmatch(p_file, 'testingfile-PM*'+sdate+'*.csv'): 
      return pd.read_csv(path+p_file, delimiter=';') 

私はこれを見つけましたが、動作させることはできません。

答えて

2

csvファイルの名前から日付を抽出する方法を探している場合は、Pythonsのdatetimeモジュール(正確にはstrptimeメソッド)を見てください。これは持っていることを

import glob 
from datetime import datetime 

now = datetime.now() 

for csv in glob.glob("data/*.csv"): 
    datepart = csv.strip("data/testingfile-PM_18707-").split("__")[0] 
    date = datetime.strptime(datepart, "%Y_%m_%d-%H_%M_%S") 
    if (now - date).total_seconds() < 3600*24: 
     pd.read_csv(csv) 
    else: 
     print("Too old to care!") 

注意:あなたが選択的に開放だけで1日齢のCSVを、あなたはこのような何かを行うことができますしたいのであれば

from datetime import datetime 

name = "data/testingfile-PM_18707-2017_06_14-05_03_23__382.csv" 

datepart = name.strip("data/testingfile-PM_18707-").split("__")[0] #quick and dirty parsing method that satisfies the given two examples. 

date = datetime.strptime(datepart,"%Y_%m_%d-%H_%M_%S") 
print(datepart) 
print(date) 
2017_06_14-05_03_23 
2017-06-14 05:03:23 

:それはあなたがこのような日付時刻に文字列を解析することができますパンダ自身とは関係がありません。

+0

私は自分の質問を編集しました。 – jovicbg

+0

例を追加しました。私が正しく理解することを願っています。 –

+0

うまくいったのですか?男性は、あなたのニーズを満たしていれば答えを受け入れることを確かめてください。 –

関連する問題