Python TypeError: не может выполнить позиционную индексацию на - PullRequest
0 голосов
/ 17 октября 2018

Извиняюсь, если это основной вопрос, но я получаю ошибку типа при попытке доступа к значениям в фрейме данных pandas.

Ошибка:

TypeError: невозможно выполнить позиционную индексацию для с этими индексаторами [1] из

Кодis:

import pandas as pd
df = pd.DataFrame({ 'A' : 1.,
            'B' : pd.Timestamp('20130102'),
            'C' : pd.Series(1,index=list(range(4)),dtype='float32')})
print df.iloc[1]

Скорее всего, я просто не понимаю, как правильно использовать iloc;Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Как отмечается в сообщении об ошибке, вы не используете стандартное целое число Python с iloc, а скорее что-то из Sage .Так что pandas не распознает его как целое число Python.

Так что, если вы сделали что-то вроде

si = sage.all.Integer(1)  # or loading a sage script
# ... some lines of pandas
df.iloc[si]  # won't work
df.iloc[int(si)]  # casts from a Sage type to a Python type.

И если вы запускаете его как скрипт .sage, а несценарий Python, а затем добавьте r для предотвращения его преобразования в тип Sage:

df.iloc[1r]

См. этот ответ на форумах sagemath для получения более подробной информации.

0 голосов
/ 17 октября 2018

Я пытался запустить ваш код, но изменил последнюю строку, потому что я использую Python 3. Я не увидел здесь проблемы.

print(df.iloc[1])

Этот вывод:

A                      1
B    2013-01-02 00:00:00
C                      1
Name: 1, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...