Как предсказать результирующий тип после индексации DataFrame PandasPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как предсказать результирующий тип после индексации DataFrame Pandas

Сообщение Anonymous »

У меня есть DataFrame Pandas, как определено здесь:

Код: Выделить всё

df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Aritra'],
'Age': [25, 30, 35],
'Location': ['Seattle', 'New York', 'Kona']},
index=([10, 20, 30]))
Однако, когда я индексирую этот DataFrame, я не могу точно предсказать, какой тип объекта будет результатом индексации:< /p>

Код: Выделить всё

# (1) str
df.iloc[0, df.columns.get_loc('Name')]
# (2) Series
df.iloc[0:1, df.columns.get_loc('Name')]

# (3) Series
df.iloc[0:2, df.columns.get_loc('Name')]
# (4) DataFrame
df.iloc[0:2, df.columns.get_loc('Name'):df.columns.get_loc('Age')]

# (5) Series
df.iloc[0, df.columns.get_loc('Name'):df.columns.get_loc('Location')]
# (6) DataFrame
df.iloc[0:1, df.columns.get_loc('Name'):df.columns.get_loc('Location')]
Обратите внимание, что каждая из пар выше содержит одни и те же данные. (например, (2) — это серия, содержащая одну строку, (4) — это DataFrame, содержащий один столбец и т. д.)
Почему они выводят разные типы объектов? Как я могу предсказать, какой тип объекта будет выведен?
Учитывая данные, похоже, что правило основано на том, сколько срезов (двоеточий) у вас есть в индексе. : Однако я не уверен, что это всегда так. , и даже если это всегда так, Я хочу знать основной механизм, почему это так.
Я потратил некоторое время на изучение документацию по индексированию, но, похоже, это поведение не описано четко. В документации для функции iloc также не описаны типы возвращаемых значений.
Меня также интересует тот же вопрос для loc вместо iloc, но, поскольку loc является инклюзивным, результаты не столь сбивают с толку. (То есть вы не можете получить пары индексов разных типов, где индексы должны извлекать одни и те же данные.)

Подробнее здесь: https://stackoverflow.com/questions/786 ... -dataframe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»