Первое примечание df.loc[0, x]
учитывает только значение в метке строки 0
и метке столбца x
, , а не всего вашего кадра данных.Теперь давайте рассмотрим пример:
df = pd.DataFrame({'A': [1.5, 'hello', 'test', 2]}, dtype=object)
print(type(df.loc[0, 'A'])) # type of single element in series
<class 'float'>
print(df['A'].dtype) # type of series
object
Как видите, серия object
dtype может содержать произвольные объекты Python.Вы можете даже, если хотите, извлечь тип каждого элемента вашей серии:
print(df['A'].map(type))
0 <class 'float'>
1 <class 'str'>
2 <class 'str'>
3 <class 'int'>
Name: A, dtype: object
* object
dtype - это просто набор указателей на различные объекты , а не .в непрерывном блоке памяти, как это может быть в случае с числовыми рядами.Это сравнимо с Python list
и объясняет, почему производительность низкая, когда вы работаете с object
вместо числовых рядов.
См. Также этот ответ для визуального представления вышеизложенного.