Объект Int64Index не вызывается. Каков наиболее удобный способ получения значения индекса при поиске значения в Dataframe с помощью pythoni c? - PullRequest
0 голосов
/ 19 июня 2020

Я хотел знать, какой из c способов получения значения индекса при поиске значения в Dataframe был наиболее эффективным.

Я справился с этим, используя numpy, но я уверен, что есть должно быть более простым способом.

В приведенном ниже примере я хотел получить индекс строки, в которой столбец store_id имеет значение 66241.

In [168]: df.store_id[df.store_id == 66241]
Out[168]:
8    66241.0
Name: store_id, dtype: float64

In output [168 ] Я вижу, что индекс равен 8. Однако, поскольку я хотел изолировать его и сохранить в переменной, я попытался вызвать его с помощью «.index ()»

In [169]:df.store_id[df.store_id == 66241].index()
Traceback (most recent call last):

  File "<ipython-input-169-4y*********d>", line 1, in <module>
    data[data.store_id == 66241].index()

TypeError: 'Int64Index' object is not callable

При вызове ( input [169]), и это дало мне TypeError: объект Int64Index не вызывается.

Таким образом, единственный способ, которым я справился с этим, заключался в использовании .index и numpy .asarray с int ( ).

In [170]: df.store_id[df.store_id == 66241].index
Out[170]: Int64Index([8], dtype='int64')

In [171]: int(np.asarray(df.store_id[df.store_id == 66241].index))
Out[171]: 8

Использование numpy действительно работает, но меня это как-то беспокоит, потому что я уверен, что есть более pythoni c способ сделать это.

Итак вопрос в том, есть ли еще способ получения индекса с помощью pythoni c? И поскольку я все еще новичок в python, я был бы рад, если бы кто-нибудь кратко объяснил мне, что такое TypeError и почему numpy выполняет свою работу.

Я действительно посмотрел везде, прежде чем спрашивать, и я извиняюсь если этот вопрос уже задавался.

Большое спасибо за ваше время,

С уважением, Джио.

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