Python, Pandas: Boolean Indexing Vergleich von DateTimeIndex auf Periode

Betrachten wir ein DataFrame, das 1 Zeile von 2 Werten pro jeden Tag des Monats Januar 2010 enthält:

date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D') df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range) 

Ich möchte die Periodenperiode Period('2009-12-28/2010-01-03', 'W-SUN') , um einen booleschen Indexer zu erstellen, der einen DataFrame zurückgibt, der nur aus diesem Zeitraum enthält. Wie kann ich einen solchen Booleschen Indexer erstellen? – Idealerweise ohne Rückgriff auf die Umwandlung der Periode in einen datetime Bereich.

  • Wie kann man die Korrelation zwischen passenden Spalten von zwei Datensätzen überprüfen?
  • Wie erstelle ich Komma mit Bindestrich mit Python-Pandas?
  • Gibt es einen besseren Weg, um doppelte Zeilen zu finden _including_ die erste / letzte?
  • Pandas Rang durch mehrere Spalten
  • Numpy.ndarray vs pandas.DataFrame
  • Pandas: Prüfen, ob ein Datum ein Feiertag ist und den Booleschen Wert zuweist
  • One Solution collect form web for “Python, Pandas: Boolean Indexing Vergleich von DateTimeIndex auf Periode”

    Lassen Sie die Abfrage pd.Period Objekt sein:

     query = pd.Period('2009-12-28/2010-01-03', 'W-SUN') 

    Sie können dies direkt auf folgende Weise durch den Zugriff auf die start_time und end_time Attribute:

    1) Verwenden von DF.truncate :

     df.truncate(query.start_time, query.end_time) 

    2) Boolescher Indexer verwenden:

     df[(df.index >= query.start_time) & (df.index <= query.end_time)] 

    3) Mit DateTime Indexing, die standardmäßig sowohl die Endpunkte enthält:

     df[query.start_time:query.end_time] 

    Alle diese produzieren

    Bildbeschreibung hier eingeben

    Python ist die beste Programmiersprache der Welt.