2016-08-29 6 views
1

Для определенного набора данных Kaggle (правила запрещают мне разделять данные здесь, но легко доступны here),панды: pandas.DataFrame.describe возвращает информацию только один столбец

import pandas 
df_train = pandas.read_csv(
    "01 - Data/act_train.csv.zip" 
) 
df_train.describe() 

я получаю:

>>> df_train.describe() 
      outcome 
count 2.197291e+06 
mean 4.439544e-01 
std 4.968491e-01 
min 0.000000e+00 
25% 0.000000e+00 
50% 0.000000e+00 
75% 1.000000e+00 
max 1.000000e+00 

в то время как для того же набора данных df_train.columns дает мне:

>>> df_train.columns 
Index(['people_id', 'activity_id', 'date', 'activity_category', 'char_1', 
     'char_2', 'char_3', 'char_4', 'char_5', 'char_6', 'char_7', 'char_8', 
     'char_9', 'char_10', 'outcome'], 
     dtype='object') 

и df_train.dtypes дает мне:

>>> df_train.dtypes 
people_id   object 
activity_id   object 
date     object 
activity_category object 
char_1    object 
char_2    object 
char_3    object 
char_4    object 
char_5    object 
char_6    object 
char_7    object 
char_8    object 
char_9    object 
char_10    object 
outcome    int64 
dtype: object 

мне не хватает какой-то причине, почему панды только describe сек один столбец в наборе данных?

ответ

2

По умолчанию describe работает только с числовыми столбцами типа dtype. Добавить ключевое слово-аргумент include='all'. From the documentation:

Если включить это строка «все», то выходной столбец посаженные будет соответствовать вход один.

Чтобы уточнить, аргументы по умолчанию describe: include=None, exclude=None. Поведение, которое является результатом:

Ничего для обоих (по умолчанию). Результат будет включать только числовые типовые столбцы или, если таковые не будут, только столбцы с категориальными данными.

Кроме того, от Примечания раздел:

Индекс выходного DataFrame зависит от запрошенной dtypes:

Для числовой dtypes, оно будет включать в себя: рассчитывать, средний, стандартный, не менее , max и нижний, 50 и верхний процентили.

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

+0

Но 'включают all'' = 'по умолчанию, если все столбцы в наборе данных являются объектами (строки)? – tchakravarty

+0

Затем вопрос меняется на - столбцы 'object', интерпретируемые как категориальные столбцы pandas в последнем случае? – tchakravarty

+0

@tchakravarty См. Мое редактирование. –

0

попробуйте сделать follwing код

import pandas 
df_train = pandas.read_csv(
    "01 - Data/act_train.csv.zip" 
) 

def describe_categorical(df_train): 
    from Ipython.display import display, HTML 
    display (HTML(df_train[df_train.columns[df_train.dtypes=="object"]].describe().to_html())) 

describe_categorical(df_train) 
Смежные вопросы