微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python中用不同的方式填充缺失值?

如何解决如何在python中用不同的方式填充缺失值?

我有一个数据集,其中包含多个数值变量和多个有序数值变量。填充缺失值我想对数值变量使用均值,对有序数值变量使用中位数。使用以下代码,它们中的每一个都是单独创建的,不会收集到数据库中。

df = [['age','score'],[10,1],[20,""],["",0],[40,[50,3],[70,[80,[90,[100,1]]

df = pd.DataFrame(data[1:])
df.columns = data[0]

df = df[['age']].fillna(df.mean())
df = df[['score']].fillna(df.median())

解决方法

pandas.DataFrame.fillna 接受键为列名的字典,所以你可以这样做:

import pandas as pd
data = [['age','score'],[10,1],[20,None],[None,0],[40,[50,3],[70,[80,[90,[100,1]]

df = pd.DataFrame(data[1:],columns=data[0])

df = df.fillna({'age':df['age'].mean(),'score':df['score'].median()})
print(df)

输出

     age  score
0   10.0    1.0
1   20.0    1.0
2   57.5    0.0
3   40.0    1.0
4   50.0    0.0
5   57.5    3.0
6   70.0    1.0
7   80.0    1.0
8   90.0    0.0
9  100.0    1.0

请记住,空字符串与 NaN 不同,后者可能是使用 python 的 None 创建的。

,

首先将空字符串替换为缺失值,然后每列替换缺失值:

function adjustCorners(homeOrAway) {
  let updatedMatchEvents = [...matchEvents];
  let cornerEvent = {
    isHome: homeOrAway,eventType: 1,playerId: 0,period: 1,minute: 0,second: 0,};

  // Not event.target.value,pass the value
  return (value) => {
    if (homeOrAway === true) {
      if (value < homeCorners) {
        updatedMatchEvents.pop();
        setMatchEvents(updatedMatchEvents);
      } else {
        updatedMatchEvents.push(cornerEvent);
        setMatchEvents(updatedMatchEvents);
      }
    } else {
      if (value < awayCorners) {
        updatedMatchEvents.pop();
        setMatchEvents(updatedMatchEvents);
      } else {
        updatedMatchEvents.push(cornerEvent);
        setMatchEvents(updatedMatchEvents);
      }
    }
  };
}

您还可以将 DataFrame.agg 用于 df = df.replace('',np.nan) df['age'] = df['age'].fillna(df['age'].mean()) df['score'] = df['score'].fillna(df['score'].median()) print (df) age score 0 10.0 1.0 1 20.0 1.0 2 57.5 0.0 3 40.0 1.0 4 50.0 0.0 5 57.5 3.0 6 70.0 1.0 7 80.0 1.0 8 90.0 0.0 9 100.0 1.0 的聚合值并传递给 DataFrame.fillna

Series

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。