значение числа панд приводит к неправильному ответу / не удается восстановить те же значения

#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