Как получить значения из индексируемой временной метки - PullRequest
0 голосов
/ 26 апреля 2018

Я создаю DataFrame примерно так:

dates = [datetime.datetime.today() + datetime.timedelta(days=x) for x in range(0, 2)]
d = DataFrame([[1,2],[3,4]], index = dates, columns = ['a', 'b'])

Я хочу получить значение примерно так:

d[d.index[0]]['a']

Но я получаю следующую ошибку:

KeyError: Timestamp('2018-04-26 16:08:16.120031')

Как получилось?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Это зависит от того, что вы хотите сделать.

Если вы просто хотите получить первый ряд, вы можете получить к нему доступ с помощью iloc и выполните следующие действия:

d.iloc[0]['a']

Если вы хотите отфильтровать кадр данных, например, по году, вы можете сделать:

d.loc[d.index.year == 2018, 'a']
0 голосов
/ 27 апреля 2018
d['a'][d.index[0]]

Моя путаница возникла из-за того, что DataFrame является первым столбцом, а не строкой первым, как можно было бы ожидать от общих многомерных структур данных. Таким образом, чтобы получить значение, нужно поменять индексы.

dataFrame[coumn][row]

Спасибо @Mikhael за подсказку.

0 голосов
/ 26 апреля 2018

Если вы пытаетесь получить первый элемент из столбца «а», вы получаете к нему следующий доступ:

d.loc[d.index[0], 'a']

Как вы сейчас написали, d[d.index[0]] пытается получить столбец с именем d.index[0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...