Я хотел бы проверить, все ли значения имеют те же типы, что и в первой строке.Каким-то образом df.applymap и series.apply не ведут себя так, как я бы предположил.
Набор данных взят из анализа настроений imdb на kaggle.
print (df.head ())
id sentiment review
0 "5814_8" 1 "With all this stuff going down at the moment ...
1 "2381_9" 1 "\"The Classic War of the Worlds\" by Timothy ...
2 "7759_3" 0 "The film starts with a manager (Nicholas Bell...
3 "3630_4" 0 "It must be assumed that those who praised thi...
4 "9495_8" 1 "Superbly trashy and wondrously unpretentious ...
Кажется, что каждая строка str, int, str.Так что, кажется, все в порядке.
print (df.applymap (type))
id sentiment review
0 <class 'str'> <class 'int'> <class 'str'>
1 <class 'str'> <class 'int'> <class 'str'>
2 <class 'str'> <class 'int'> <class 'str'>
3 <class 'str'> <class 'int'> <class 'str'>
4 <class 'str'> <class 'int'> <class 'str'>
Вызов apply для серии выглядит несколько иначе.Настроение: int64 вместо int .
print (df.iloc [0] .apply (type))
id <class 'str'>
sentiment <class 'numpy.int64'>
review <class 'str'>
Name: 0, dtype: object
Может быть, все равно, поэтому я сравнил типы.
print (df.applymap (type) == df.iloc [0] .apply (type))
id sentiment review
0 True False True
1 True False True
2 True False True
3 True False True
4 True False True
Результат неожиданный.По крайней мере, первая строка должна быть True, True, True.Я использую applymap в DataFrame, который должен быть поэлементным.Второе применимо к серии, которая также должна быть поэлементной.Так почему же результаты не равны?