import pandas as pd
pd.options.display.max_rows = 10 # 设置显示行数
df1 = pd.read_csv(r'E:\anacondatest\PythonData\高校信息.csv', encoding='gbk', index_col='学校名称')
# 系统默认缺失值None和np.nan,两者和核心区别在于是否能够比较
df1.名次.iloc[:3] = None
# print(df1.名次.isna())
import numpy as np
df1.名次.iloc[:5] = np.nan
# pd.options.mode.use_inf_as_na 设定inf和-inf是否认定为缺失值
# 缺失值处理,标识缺失值
df2na = df1.replace(['北京', 100], [np.nan, np.nan])
df2na.replace(['北京', 100], [np.nan, np.nan]).isna()
df2na.isna().any(1) # 1表示列
print(df2na[df2na.isna().any(1)])
# 填充缺失值
df1.replace(['北京', 100], [np.nan, np.nan]).fillna('未知')
# 删除缺失值
df1.dropna(axis=1, how='all') # all全部NA才删除,any任何一个为Na就删除
# 数据查重
df1['是否重复数据'] = df1.duplicated(['类型', '所在省份']) # 类型,所在省份都相等才算重复
# 删除重复行
df1.drop_duplicates(['类型', '所在省份'])