5 个回答
df.fillna():空值填充
创建一个DataFrame:
import pandas as pd
import numpy as np
Student_dict = {'姓名':['张三', '李四', '王五', '赵六'],
'性别':['男', '女', '男', '女'],
'年龄':[20, 21, 19, 18],
'Python成绩':[70, np.nan, 90, 50]}
# 字典创建DataFrame,字典键变DataFrame的列名
df = pd.DataFrame(data=Student_dict, index=['a','b','c','d'])
df
df.fillna():填充空值为-999:
df.fillna(-999, inplace=True)
df
变更前后:
更多DataFrame操作可以看一下我的文章哦:
如果觉得不错,大家记得动动小手帮我 @ColorfulRain0807 点个赞呀,这对我很重要!
我们处理大型数据集时,有时数据集中会有
NaN
值要用某个平均值或合适的值替换。例如,你有一个学生评分列表,有些学生没有参加测验,因此系统自动输入了
NaN
而不是 0.0。因此我们要对这些NaN值进行处理,一种简单的方式就是将NaN值替换为零。下面我们介绍两种替换的方法。
1.df.fillna() 方法将所有 NaN 值替换为零
借助
df.fillna()
方法替换 NaN 值。
import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
'percentage': [90, 99, 50, 65],
'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)
df = df.fillna(0)
print(df)
以下是将
NaN
替换为
0
的输出。
name percentage grade
0 Oliver 90 88.0
1 Harry 99 0.0
2 George 50 95.0
3 Noah 65 0.0
df.fillna()
方法用给定值填充 NaN 值。它不会更改对象数据,但默认情况下会返回一个新的 DataFrame,除非将
inplace
参数设置为 True。
我们可以通过设置
inplace
参数为
True
来重写上述代码。
import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
'percentage': [90, 99, 50, 65],
'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)
python基础知识资料分享给大家~~~ 获取方式:
【资料免费领】| 程序员必备指南+Python学习资料,0元抱走!
2.df.replace() 方法
此方法与
df.fillna()
相同,将
NaN
替换为
0
。
df.replace()
也可用于替换其他数字。让我们看一下代码。
import pandas as pd
import numpy as np
data = {'name': ['Oliver', 'Harry', 'George', 'Noah'],
'percentage': [90, 99, 50, 65],
'grade': [88, np.nan, 95,np.nan]}
df = pd.DataFrame(data)