=== 数据过滤获取 ===
个人觉得并没有什么用,完全可以用切片或索引器代替
stu_info = pd.read_excel('student_info1.xlsx',sheetname='countif',index_col='学号').head(3)
stu_info[stu_info.columns[0:]]
=== 缺失值处理 ===
原数据:
stu_info = pd.read_csv('student_info1.csv',header=1)
stu_info
#stu_info[stu_info.isnull()] 像Series这一处理是不行的
1、删除nan
# 删除nan行
stu_info.dropna()
# 删除nan列
stu_info.dropna(axis=1)
# 设置阈值
# 如果一行都是nan才删除
stu_info.dropna(how='all')
2、设置NaN的值
# 将nan设置为0
stu_info.fillna(0)
使用nan下一行的值进行填充 (axis=1列填充)
stu_info.fillna(method='bfill')
使用nan上一行的值进行填充 (axis=1列填充)
stu_info.fillna(method='ffill')
按列填充
stu_info.fillna({'Math':100,'English':0})
值替换 将语文成绩中88分换成99分
stu_info.replace({88:99})
=== 统计方法 ===
1、 计数方法count只记非nan值 (axis=1 按列)
stu_info.count()
2、总统计值
stu_info.describe()
3、最值、累加
stu_info.max()
stu_info.min()
stu_info.sum()
4、中位数 quantile median
stu_info.quantile()
stu_info.median()
5、 最大值的索引值
stu_info.idxmax()
#stu_info.argmax()#在0.21版本中删除了
6、 偏科程度(判断一组数据的最大值和最小值差别是不是很大)
stu_info.mad(axis=1)
7、 样本值累计和
本行值加上一行的值,88+33=121
stu_info.cumsum()
8、变化率
stu_info.pct_change()
第一行NaN,因为上一行没有数据,无法计算变化率
正的是增长的百分率,负的是减少的半分率