1、查看缺失值
方法一:df.isunll 是缺失值显示True
import pandas as pd
df = pd.read_excel('测试.xlsx')
print(df.isnull())
查看每列缺失值的总和:df.isnull().sum()
import pandas as pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df.isnull().sum())
方法二:查看表格缺失值: df.info()
import panda sas pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df.info())
2、对缺失值进行助理
方法一:删除缺失行或者列dropna
语法:DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
参数说明:
axis=0: 删除包含缺失值的行,默认为axis = 0
axis=1: 删除包含缺失值的列
how: 与axis配合使用
how=‘any’ :只要有缺失值出现,就删除该行或列,默认为how=‘any’
how=‘all’: 所有的值都缺失,才删除行或列
thresh: axis中至少有thresh个非缺失值[控制数量不能大于设定数量],否则删除
比如 axis=0,thresh=3:标识如果该行中缺失值的数量大于3,将删除这一行
subset= [’’,’’] 指定哪个字段中有缺失值,删除缺失,默认为None;
在哪些列中查看是否有缺失值
inplace: 是否在原数据上操作。如果为真,返回None否则返回新的copy,去掉了缺失值
import pandas as pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df.dropna()) # 删除有空值的行
print(df.dropna(axis=1)) # 删除有空值的列
print(df.dropna(how='all')) # 删除所有值为Nan的行
print(df.dropna(thresh=2)) # 至少保留两个非缺失值
print(df.dropna(subset=['语文','数学'])) # 在哪些列表中查看
#inplace: 是否在原数据上操作。如果为真,返回None否则返回新的copy,去掉了缺失值
方法二:填充缺失值.fillna
语法:DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
value: scalar, dict, Series, or DataFrame;dict 可以指定每一行或列用什么值填充
method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
在列上操作
Method — 填充方式 [ffill / pad: 使用上面的值来填充缺失值];[backfill / bfill :使用下面的值来填充缺失值];[等于EXCEL里面的拖拉数据]
注:如果轴变了,那么左和右就是他的上和下
limit 填充的缺失值个数限制。应该不怎么用
inplace=True直接修改原对象
axis就是轴向
import pandas as pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df.fillna(520,inplace=True)) # 用520填充所有缺失,inplace=True修改原数据
print(df.fillna({'语文':10,'数学':20,'英语':30})) # 指定列填充指定内容
print(df.fillna(method='ffill')) # 以NaN单元格上面的值来填充NaN
3、查看重复值
重复数据常用函数:
DataFrame[‘字段名’].unique() — 以列表的形式显示唯一值;要输入字段名,不然会报错
DataFrame[‘字段名’].value_counts() — 某个字段中,内容重复出现的次数;
【注意】要输入字段名,不然会报错
import pandas as pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df['语文'].unique())
print(df['语文'].value_counts())
显示语文中出现的唯一值
语文成绩中,出现的内容的次数
4、对重复值进行处理:drop_duplicates
方法一:删除重复值;
语法:DataFrame.drop_duplicates(subset=None, keep=‘first’, inplace=False)
subset — 用来指定特定的列,默认是所有列;
keep — 指定处理重复值的方法,默认是 keep = ‘first’
‘first’ — 保留第一次出现的值;
‘last’ — 保留最后一次出现的值;
False — 删除所有重复值,留下没有出现过重复的; Fasle不用加引号
inplace — 是否在原来数据上修改,还是保留一个副本;默认是在原来数据上修改
import pandas as pd
df = pd.read_excel('测试.xlsx',index_col='姓名')
print(df)
print(df.drop_duplicates(subset= ['语文'],keep = False))