PANDAS Abfragen auf den index

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Heon
User
Beiträge: 8
Registriert: Dienstag 27. Februar 2018, 10:03

Dienstag 6. März 2018, 15:21

Hallo zusammen,

ich bin gerade dabei mich in pandas und die datframes einzuarbeiten und komme an einer Stelle einfach partout nicht weiter.
Folgender Code aus dem Tutorial (https://pandas.pydata.org/pandas-docs/s ... exing.html)

Code: Alles auswählen

import numpy as np
import pandas as pd
import datetime as dt

dates = pd.date_range('1/1/2000', periods=8)

df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])

df2 = df.loc[[dt.date(2000, 1, 1), dt.date(2000, 1, 2)], :]
erzeugt mir folgenden DataFrame:

Code: Alles auswählen

                   A         B         C         D
2000-01-01  1.128522  0.579823  0.595204 -0.472479
2000-01-02  1.579008 -0.267420 -0.417883 -0.393520
2000-01-03  0.240996 -0.269776  0.435395  1.491248
2000-01-04  0.098819 -0.117797  0.113086 -1.037268
2000-01-05  1.427513  0.934108  0.910004  0.623811
2000-01-06  0.874493  0.616201 -1.742273 -1.203147
2000-01-07  1.219790  0.497023 -0.191842 -0.405324
2000-01-08 -1.354411  0.220779 -0.391363  0.464529
Ich will nun auf den Index, welcher ein Datum ist, abfragen.
Und zwar z.B. alle Datümer < 5.1.2000

Ich kann einzelne Datümer abfragen so wie ich es bei df2 mache aber wie frage ich Datumsbereiche ab, wenn sich das Datum im Index befindet. Wie ich es mache wenn sich das Datum in einer normalen Spalte befindet ist mir klar, ich komm nur nicht an den Index ran.

Heon
derElch
User
Beiträge: 6
Registriert: Sonntag 25. Februar 2018, 13:14

Dienstag 6. März 2018, 16:43

Auf Stackocerflow gibt es etwas dazu:
https://stackoverflow.com/questions/240 ... ger-than-x

Das könnte passen?
Heon
User
Beiträge: 8
Registriert: Dienstag 27. Februar 2018, 10:03

Mittwoch 7. März 2018, 18:29

Ja, das war die Lösung. Danke !

(ich schreibs hier nochmal rein, wer weiß ob man später auf die Stackoverflow-Seite noch drauf kommt):

Ergänzung zu obigem Code:

Code: Alles auswählen

df3 = df[df.index > dateutil.parser.parse("2000-01-04")]
Antworten