1.清除空值
如果我们要删除包含空字段的行,可以使用 dropna() 方法
Dataframe.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
- axis:默认为 0,表示逢空值剔除整行,如果设置参数 axis=1 表示逢空值去掉整列。
- how:默认为 ‘any’ 如果一行(或一列)里任何一个数据有出现 NA 就去掉整行,如果设置 how=‘all’ 一行(或列)都是 NA 才去掉这整行。
- inplace:如果设置 True,将计算得到的值直接覆盖之前的值并返回 None,修改的是源数据。
df = pd.Dataframe(pd.read_csv(n,encoding='gbk')) data = pd.Dataframe(df.dropna())
2.去除重复值
drop_duplicates()
keep: 可选参数有三个:‘first’、 ‘last’、 False, 默认值 ‘first’。其中:
- first表示: 保留第一次出现的重复行,删除后面的重复行。
- last表示: 删除重复项,保留最后一次出现。
- False表示: 删除所有重复项。
inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。
注意:drop_duplicates删除重复行时,行索引也会删除。需要重置索引
data.reset_index(drop=True)
3.修改异常值
for x in n.index:
if n.loc[x,'recently_logged'] == '--':
n.loc[x, 'recently_logged'] = n.loc[x, 'register_time']
n.loc[n['recently_logged'] == '--', 'recently_logged'] = n.loc[n['recently_logged'] == '--', 'register_time']
# for x in df.index:
# if df.loc[x, 'Sex'] == 'female':
# df.loc[x,'Sex'] = 0
# else:
# df.loc[x,'Sex'] = 1
df.loc[df['Sex'] == 'female', 'Sex'] = 0
df.loc[df['Sex'] == 'male', 'Sex'] = 1
for x in df.index:
if df.loc[x, "age"] > 120:
df.drop(x, inplace = True)
4.判段是否非空
isnull() 判断各个单元格是否为空
查看数据整体的缺失值情况
isnull().sum()
可以指定指定空数据类型:
比如
missing_values=[“n/a”, “na”]
5.填充空值
fillna()
df.fillna(0) 用0填充空值
用均值填充空值
x = df[“a”].mean()
df[“a”].fillna(x, inplace = True)
类似可以使用median()中位数,mode()众数
(pima的数据来源在下面的github地址)
数据放到github上了
点击此处



