对于某个Kaggle数据集(规则禁止我在此处共享数据,但可以随时访问here),
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
我是否遗漏了为什么pandas只有describe
数据集中的一列?
答案 0 :(得分:2)
默认情况下,describe
仅适用于数字dtype列。添加关键字参数include='all'
。 From the documentation:
如果include是字符串'all',则输出列集将匹配 输入一个。
为了澄清,describe
的默认参数是include=None, exclude=None
。产生的行为是:
两者都没有(默认)。结果将仅包含数字类型 列,如果没有,则只有分类列。
另外,从备注部分:
输出DataFrame索引取决于请求的dtypes:
对于数字dtypes,它将包括:count,mean,std,min,max和 较低,50和较高的百分位数。
对于对象dtypes(例如时间戳或字符串),索引将包括 最常见的计数,唯一,最常见和频率。 时间戳还包括第一个和最后一个项目。
答案 1 :(得分:0)
尝试下面的代码
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)