функция unique() в python не выводит все значения?

#python #pandas

#питон #панды

Вопрос:

поэтому я пытаюсь получить все уникальные значения в фрейме данных. Это и есть код

 for i in df.columns.tolist():  print(f"{i}")  print(df[i].unique())  

Вот какой результат я получаю

 customerID ['7590-VHVEG' '5575-GNVDE' '3668-QPYBK' ... '4801-JZAZL' '8361-LTMKD' '3186-AJIEK'] gender ['Female' 'Male'] SeniorCitizen [0 1] Partner ['Yes' 'No'] Dependents ['No' 'Yes'] tenure [ 1 34 2 45 8 22 10 28 62 13 16 58 49 25 69 52 71 21 12 30 47 72 17 27  5 46 11 70 63 43 15 60 18 66 9 3 31 50 64 56 7 42 35 48 29 65 38 68  32 55 37 36 41 6 4 33 67 23 57 61 14 20 53 40 59 24 44 19 54 51 26 0  39] PhoneService ['No' 'Yes'] MultipleLines ['No phone service' 'No' 'Yes'] InternetService ['DSL' 'Fiber optic' 'No'] OnlineSecurity ['No' 'Yes' 'No internet service'] OnlineBackup ['Yes' 'No' 'No internet service'] DeviceProtection ['No' 'Yes' 'No internet service'] TechSupport ['No' 'Yes' 'No internet service'] StreamingTV ['No' 'Yes' 'No internet service'] StreamingMovies ['No' 'Yes' 'No internet service'] Contract ['Month-to-month' 'One year' 'Two year'] PaperlessBilling ['Yes' 'No'] PaymentMethod ['Electronic check' 'Mailed check' 'Bank transfer (automatic)'  'Credit card (automatic)'] MonthlyCharges [29.85 56.95 53.85 ... 63.1 44.2 78.7 ] TotalCharges ['29.85' '1889.5' '108.15' ... '346.45' '306.6' '6844.5'] Churn ['No' 'Yes']  

Почему он пропускает большинство значений в ежемесячных и общих сборах? и как с этим бороться?

Спасибо

Ответ №1:

У Панд есть настройка, чтобы не показывать вам все значения, если они превышают некоторую длину. Поэтому, если ваш фрейм данных содержит более 50 строк, я думаю, он покажет вам первые 25, затем элипсис ( … ), затем последние несколько, и это также то, что здесь происходит.

Вероятно, вы могли бы изменить это, выполнив следующее:

 pd.set_option("display.max_rows", None)  

Я бы в любом случае не стал этого делать, так как, если у вас очень длинный кадр данных, распечатка всех этих строк может занять очень много времени.

В качестве альтернативы вы можете перебрать уникальные значения и просто распечатать их одно за другим:

 for value in df[i].unique():  print(value)  

Комментарии:

1. Спасибо. Я попробовал, к сожалению, Это не сработало 🙁

2. @Hajarhajar, что сейчас происходит? По-прежнему отображаются только несколько строк?

3. да, к сожалению! дело в том, что я хочу проверить, есть ли там какое-либо странное значение, например » или ‘_’ или что-то в этом роде, чтобы я либо удалил его, либо заменил на NaN

4. @Hajarhajar Но вы пробовали мое предложение с петлей? Это, безусловно, не должно опускать какие-либо значения.