Python 2.7 iPython Notebook中Credit_History为NaN的数据统计需求
嘿,作为数据科学新手,你这个处理缺失值的思路可比直接硬替换要严谨多啦!针对你的需求,我给你写了具体的Python 2.7代码,适配IPython Notebook环境,一步步来实现:
首先,我们得先把Credit_History列为NaN的行单独筛选出来,这是后续分析的基础:
import pandas as pd # 假设你的数据集存储在df变量中,先筛选Credit_History为NaN的子集 nan_credit_subset = df[df['Credit_History'].isnull()]
1. 统计非数值型列的各值计数
我们先筛选出所有非数值型(一般是object类型)的列,然后逐个用value_counts()统计每个值出现的次数:
# 筛选非数值型列 non_numeric_columns = nan_credit_subset.select_dtypes(include=['object']).columns # 遍历每一列,输出值计数结果 for col in non_numeric_columns: print("列 {} 的值分布:".format(col)) print(nan_credit_subset[col].value_counts()) print("-" * 30) # 分隔线,让输出更清晰
如果想把这些计数结果保存下来(而不是只打印),可以存进一个字典:
non_numeric_counts = {} for col in non_numeric_columns: non_numeric_counts[col] = nan_credit_subset[col].value_counts()
2. 计算数值型列的均值
接下来处理数值型列,筛选出int64或float64类型的列,直接用mean()计算均值:
# 筛选数值型列 numeric_columns = nan_credit_subset.select_dtypes(include=['int64', 'float64']).columns # 计算并输出各数值型列的均值 print("数值型列的均值统计:") print(nan_credit_subset[numeric_columns].mean())
同样,你可以把均值结果存成一个Series变量,方便后续使用:
numeric_means = nan_credit_subset[numeric_columns].mean()
需要注意的是,如果你用的pandas版本比较旧(适配Python2.7的版本),select_dtypes的语法是兼容的,放心用就行。要是运行时遇到列类型识别的问题,也可以手动指定列名来筛选,比如non_numeric_columns = ['Gender', 'Married', ...]这样。
内容的提问来源于stack exchange,提问作者uharsha33
相关产品推荐
相关产品推荐

