2016-06-09 11 views
1

Ich habe eine CSV-Daten wie folgt aus:Wählen Sie Zeilen in Pandas passenden Zeitbedingung

[id names   timestamp     is_valid] 
[1 name:surname 2016-06-09 23:29:50.083093  True] 

Ich brauche Zeilen auszuwählen, basierend auf dieser Bedingung: wenn is_valid wahr ist und wenn Zeitstempel hat 24 Stunden vergangen. So sollte es sein Wahre und aktuelle Zeit 2016-06-10 23: 29: 50.083093, um die Bedingung zu bestehen.

Wie kann ich das erreichen? Ich weiß, wie die erste Bedingung gelten:

from datetime import datetime, timedelta 
import pandas as pd 
from dateutil import parser 

df=pd.read_csv('acc.csv') 
user=(df[df['is_valid']==True]) 

Ich kann sogar drucken Zeitstempel, analysiert sie und vergleiche mit datetime.now(). Aber das ist definitiv eine schreckliche Sache zu tun.

Antwort

0

versuchen Sie dies:

from datetime import datetime, timedelta 
import pandas as pd 
from dateutil import parser 

df = pd.read_csv('acc.csv') 
tidx = pd.to_datetime(df['timestamp'].values) 
past_24 = (pd.datetime.now() - tidx).total_seconds() > 60 * 60 * 24 
user = df[df['is_valid'] & past_24] 
+0

yup, es funktioniert der Trick! (Zuerst hatte ich keine Ergebnisse, aber dann erkannte 24 Stunden sind noch nicht vergangen -_-) Danke! –

Verwandte Themen