#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 Но вы пробовали мое предложение с петлей? Это, безусловно, не должно опускать какие-либо значения.