【问题标题】:How to check missing values in dataframe for specific datatype?如何检查特定数据类型的数据框中的缺失值?
【发布时间】:2020-03-12 00:11:04
【问题描述】:

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

大家好, 我想在每列中查找缺失值并将其他列(平均值、中值、模式)添加到仅数字(int、float)数据类型的输出中,否则它应该为空。 如果一列具有所有唯一值,则众数 = 中位数。 如果数据框中没有缺失值,则返回输出的空数据框。

输出:

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

谢谢

【问题讨论】:

  • df1.isna().sum()?
  • 这将只给所有列缺失值

标签: python python-3.x pandas python-2.7 dataframe


【解决方案1】:

据我所知,您只想对 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 以您的问题中显示的方式打印它们

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 2018-05-16
    • 2015-10-11
    • 2018-08-03
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多