我有一个由450列和550 000行组成的大型数据框。 在列中,我有:
我想对我的变量进行描述,但不仅要像往常一样进行描述,还要在同一矩阵中包含其他描述。最终,我们将获得一个包含450个变量的描述矩阵,然后对以下内容进行详细描述: -dtype -数 -计算空值 -空值百分比 -最大 -分钟 -50% -75% -25% -......
现在,我只需要一个基本函数来描述我的数据,就像这样:
Dataframe.describe(include = 'all')
您是否有函数或方法来进行更广泛的说明。
谢谢。
答案 0 :(得分:7)
您需要为Series
编写自定义函数,然后添加到最终描述DataFrame
:
通知:
最终df的第一行是count
-用于计算非NaNs值的函数count
df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,np.nan,np.nan,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})
print (df)
A B C D E F
0 a 4.0 7 1 5 a
1 b NaN 8 3 3 a
2 c NaN 9 5 6 a
3 d 5.0 4 7 9 b
4 e 5.0 2 1 2 b
5 f 4.0 3 0 4 b
df1 = df.describe(include = 'all')
df1.loc['dtype'] = df.dtypes
df1.loc['size'] = len(df)
df1.loc['% count'] = df.isnull().mean()
print (df1)
A B C D E F
count 6 4 6 6 6 6
unique 6 NaN NaN NaN NaN 2
top e NaN NaN NaN NaN b
freq 1 NaN NaN NaN NaN 3
mean NaN 4.5 5.5 2.83333 4.83333 NaN
std NaN 0.57735 2.88097 2.71416 2.48328 NaN
min NaN 4 2 0 2 NaN
25% NaN 4 3.25 1 3.25 NaN
50% NaN 4.5 5.5 2 4.5 NaN
75% NaN 5 7.75 4.5 5.75 NaN
max NaN 5 9 7 9 NaN
dtype object float64 int64 int64 int64 object
size 6 6 6 6 6 6
% count 0 0.333333 0 0 0 0
答案 1 :(得分:0)
在熊猫中,它们仍然不是describe()
的替代功能,它不会显示所需的所有值。您可以相应地利用describe()函数的各种参数。
describe()
仅适用于数字类型。如果您认为自己有一个数字变量,但没有出现在'decribe()'中,请使用以下类型更改类型:
df[['col1', 'col2']] = df[['col1', 'col2']].astype(float)
您还可以创建新列来处理混合类型列的数字部分,或使用字典和map()函数将字符串转换为数字。
describe()
(非数字系列)将为您提供一些统计信息(例如计数,唯一值和最常出现的值)。
使用describe(include = ['O'])
仅在对象(字符串)上调用describe()