Ich habe einen Pandas-Datenrahmen:

import pandas as pnd
d = pnd.Timestamp('2013-01-01 16:00')
dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False)

df = pnd.DataFrame(index=dates, columns=['a'])
df['a'] = 6

print(df)
                     a
2013-01-01 16:00:00  6
2013-01-02 16:00:00  6
2013-01-03 16:00:00  6
2013-01-04 16:00:00  6
2013-01-07 16:00:00  6
2013-01-08 16:00:00  6
2013-01-09 16:00:00  6
2013-01-10 16:00:00  6
2013-01-11 16:00:00  6

Ich bin daran interessiert, die Etikettenposition eines der Etiketten zu finden, z.

ds = pnd.Timestamp('2013-01-02 16:00')

Wenn ich mir die Indexwerte ansehe, weiß ich, dass dies die ganzzahlige Position dieses Labels ist. 1. Wie können Pandas feststellen, wie hoch der ganzzahlige Wert dieses Labels ist?

19
nitin 22 Juni 2013 im 00:46

3 Antworten

Beste Antwort

Sie suchen nach der Indexmethode get_loc:

In [11]: df.index.get_loc(ds)
Out[11]: 1
39
Andy Hayden 21 Juni 2013 im 20:49

get_loc kann für Zeilen und Spalten verwendet werden, und zwar gemäß:

import pandas as pnd
d = pnd.Timestamp('2013-01-01 16:00')
dates = pnd.bdate_range(start=d, end = d+pnd.DateOffset(days=10), normalize = False)

df = pnd.DataFrame(index=dates)
df['a'] = 5
df['b'] = 6
print(df.head())    
                     a  b
2013-01-01 16:00:00  5  6
2013-01-02 16:00:00  5  6
2013-01-03 16:00:00  5  6
2013-01-04 16:00:00  5  6
2013-01-07 16:00:00  5  6

#for rows
print(df.index.get_loc('2013-01-01 16:00:00'))  
 0
#for columns
print(df.columns.get_loc('b'))
 1
0
Emad Saeidi 8 Okt. 2018 im 09:22

Ruft den Integer-Index des Datenrahmens mit einem Datumsschlüssel ab:

>>> import pandas as pd

>>> df = pd.DataFrame(
    index=pd.date_range(pd.datetime(2008,1,1), pd.datetime(2008,1,5)),
    columns=("foo", "bar"))

>>> df["foo"] = [10,20,40,15,10]

>>> df["bar"] = [100,200,40,-50,-38]

>>> df
            foo  bar
2008-01-01   10  100
2008-01-02   20  200
2008-01-03   40   40
2008-01-04   15  -50
2008-01-05   10  -38

>>> df.index.get_loc(df["bar"].argmax())
1

>>> df.index.get_loc(df["foo"].argmax())
2

In der Spaltenleiste beträgt der Index des Maximalwerts 1

In Spalte foo beträgt der Index des Maximalwerts 2

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.get_loc.html

3
Eric Leschinski 9 Dez. 2016 im 23:02