Как получить значение индекса в кадре данных, сравнивая дату с объектом datetime в этом кадре? - PullRequest
0 голосов
/ 24 августа 2018

У меня есть датафрейм вроде следующего.Я хотел бы получить значение индекса, проверив дату.Например, если дата 2018-04-05, мне нужно получить значение индекса как 3. Может кто-нибудь дать мне знать, как это сделать?

       close                      date     high      low     open   volume
0    1536.95 2018-04-02 09:15:00+05:30  1545.00  1509.40  1509.40   420761   
1    1554.80 2018-04-03 09:15:00+05:30  1562.00  1534.00  1534.00   201412   
2    1530.00 2018-04-04 09:15:00+05:30  1576.85  1525.85  1554.00   171614   
3    1552.35 2018-04-05 09:15:00+05:30  1559.70  1536.90  1551.40   198303   
4    1553.25 2018-04-06 09:15:00+05:30  1560.95  1542.85  1558.00   119196   
5    1541.30 2018-04-09 09:15:00+05:30  1559.15  1535.65  1552.90   175732   
6    1539.15 2018-04-10 09:15:00+05:30  1555.90  1531.45  1555.90   112086   
7    1533.55 2018-04-11 09:15:00+05:30  1543.50  1520.10  1531.90   319761   

Ответы [ 3 ]

0 голосов
/ 25 августа 2018

Вы также можете сделать следующее:

a = [1,2,3,4,5]
b = [1,0.4,0.3,0.5,0.2]

df = pd.DataFrame({'a':a , 'b': b})

df.loc[df['a'] == 1].index.item()

Вывод:

df is:

    a    b
0  1  1.0
1  2  0.4
2  3  0.3
3  4  0.5
4  5  0.2


index:
 0
0 голосов
/ 25 августа 2018

Я бы сделал так:

df.loc[df["date"] == "2018-04-05"].index[0]
# outputs
(3, 1552.3499999999999)

или

df.loc[df["date"] == "2018-04-05"].index.values
# outputs
array([(3, 1552.35)], dtype=object)

В обоих случаях вы можете выбрать 1-й элемент

df.loc[df["close"] == "2018-04-05"].index[0][0] #gives 3

df.loc[df["close"] == "2018-04-05"].index.values[0][0] #gives 3

0 голосов
/ 24 августа 2018

Вы можете использовать атрибут normalize, равный datetime, чтобы обнулить временную часть, что затем позволит вам напрямую сравнить datetime со строкой

import pandas as pd
date= '2018-04-05'
#df['date'] = pd.to_datetime(df.date)

df[df.date.dt.normalize() == date].index.values
#array([3], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...