熊猫广泛的“描述”包括计数空值

时间:2018-11-06 14:28:06

标签: python pandas

我有一个由450列和550 000行组成的大型数据框。 在列中,我有:

  • 73个浮动列
  • 30列日期
  • 对象中的其余列

我想对我的变量进行描述,但不仅要像往常一样进行描述,还要在同一矩阵中包含其他描述。最终,我们将获得一个包含450个变量的描述矩阵,然后对以下内容进行详细描述: -dtype -数 -计算空值 -空值百分比 -最大 -分钟 -50% -75% -25% -......

现在,我只需要一个基本函数来描述我的数据,就像这样:

Dataframe.describe(include = 'all')

您是否有函数或方法来进行更广泛的说明。

谢谢。

2 个答案:

答案 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()函数的各种参数。

DataFrame上的

describe()仅适用于数字类型。如果您认为自己有一个数字变量,但没有出现在'decribe()'中,请使用以下类型更改类型:

df[['col1', 'col2']] = df[['col1', 'col2']].astype(float)

您还可以创建新列来处理混合类型列的数字部分,或使用字典和map()函数将字符串转换为数字。

describe()(非数字系列)将为您提供一些统计信息(例如计数,唯一值和最常出现的值)。

使用describe(include = ['O'])仅在对象(字符串)上调用describe()