#python #pandas #count
Вопрос:
import pandas as pd
file= pd.read_csv("test_data.csv")
file['ORIGIN'].value_counts()
Результат странный, он разделил национальность на две такие ценности:
> Egyptian 14939
> Indian 11934
> Indian 9803
> Egyptian 9465
> British 4568
> British 4317
> Name: ORIGIN, dtype: int64
Файл CSV по ссылке: https://drive.google.com/file/d/1YvkuUJB7NHIwqN-SlywuFIuiFR1779yB/view?usp=sharing
Комментарии:
1. Я подозреваю, что в одном из них есть лишние пробелы.
2. Попробуй
file['ORIGIN'].str.strip().value_counts()
. Это что-нибудь меняет?3. Посмотрите
file['ORIGIN'].unique()
, чтобы точно определить, каковы эти значения4. @Бармар .. Я уже проверил это, никаких пробелов
5. Я не согласен с этим @almegdadi. Проверьте мой ответ ниже. Я использовал предоставленный вами файл.
Ответ №1:
По предложению @ALollz, используйте unique
:
>>> file['ORIGIN'].unique()
array(['Indian ', # HERE
'Egyptian ', # HERE
'British ', # HERE
'Egyptian ',
'British ',
'Indian '],
dtype=object)
Смотрите дополнительные пробелы в 3 первых строках, которые, как подозревает @Barmar’а
Вывод value_counts
после str.strip
:
>>> file['ORIGIN'].str.strip().value_counts()
Egyptian 24404
Indian 21737
British 8885
Name: ORIGIN, dtype: int64