Я хотел знать, какой из 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 выполняет свою работу.
Я действительно посмотрел везде, прежде чем спрашивать, и я извиняюсь если этот вопрос уже задавался.
Большое спасибо за ваше время,
С уважением, Джио.