DataFrame中的 nan 值的处理方法

  1. 删除  所有nan
df.dropna()

#dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

关于dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)参数的说明:

  • axis:默认是0,即删除行。1或者columns则是删除列
  • how:删除方式。any删除至少有一个NaN的行/列;all删除全部都是NaN的行/列
  • thresh:阈值。int,删除的行/列至少有n个NaN值
  • subset:列表。columns或者index,只删除指定列/行 
    • df=df.dropna(subset=['列名'])

2. 填充

df['列名1'].fillna(value = 30,inplace=True) 

df.fillna(value = 30,inplace=True) 
# 填充所有nan
  • value = 30,用30填补空值
  • value = df['列名1'].mean() 均值填充
  • value = df['列名1'].median() 中位数填充
  • value = df.Mer_min_distance.mode()[0] 众数填充

3. 按列选取没有 nan的部分

df = df[pd.notnull(df['a'])]

4. 按列选取包含 nan的部分

df = df[pd.isnull(df['d'])] # 包含nan的部分

df = df[~pd.isnull(df['d'])] # 不包含nan的部分

5.  不知道是啥,但也能达到 按列提取非nan 的部分

df = df.query('a == a') # a 是列名

参考:

删除DataFrame中某列值为NaN的记录/行

Python数据预处理--缺失值处理

python数据预处理(1)———缺失值处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值