如何检查特定数据类型的数据帧中缺少的值?

2024-05-16 20:45:51 发布

您现在位置:Python中文网/ 问答频道 /正文

df1型:

    Name    marks   class   Avg   is_stud   Date
0   Tom     91.55   classA  45.0    True    10/2/2011
1   Jack    98.66   classB  65.0    False   11/2/2011
2   nick    NaN     classC  NaN     False   12/2/2011
3   juli    90.60   classA  14.0    False   13/2/2016
4   NaN     79.60   classB  58.0    True    10/2/2011
5   ramy    NaN     classC  22.0    False   11/2/2011
6   suzane  85.00   classA  65.0    False   12/2/2015
7   nick    NaN     classB  96.0    False   13/2/2012
8   Tom    69.69    classC  NaN     NaN     NaN
9   NaN    56.20    classD  NaN     NaN     NaN

大家好, 我想在每一列中找到缺失的值,然后将其他列(mean,median,mode)添加到输出中,只针对numeric(int,float)数据类型,否则它应该为null。 如果列具有所有唯一值,则mode=median。 如果数据帧中没有缺失值,则返回输出的空数据帧。你知道吗

输出:

col_name  no.of missing  mean   median   mode
Name               2    Nan     Nan      Nan
marks              3    81.61   85.0     85.0
Avg                3    52.14   58.0     65.0
is_stud            2    Nan     Nan      Nan
Date               2    Nan     Nan      Nan

谢谢


Tags: namefalsedateismodenanavgmedian
1条回答
网友
1楼 · 发布于 2024-05-16 20:45:51

据我所知,如果您只想对intfloat值执行操作,我建议您首先检查列的类型,然后执行操作。你知道吗

import numpy as np
import pandas as pd
from scipy import stats

for col in df.columns:
    if (df[col].dtype == 'int64') or (df[col].dtype == 'float64'):
        mean = np.mean(df[col])
        median = np.median(df[col])
        mode = stats.mode(df[col])
        print('Mean', mean, '\nMedian', median, '\Mode', mode, '\for column', col)

一旦你得到了这些值,你就可以用pd.DataFrame以问题中显示的方式打印它们

相关问题 更多 >