数据分析

06 pandas DataFrame - 数据过滤、NaN处理

2018-09-17  本文已影响0人  白尔摩斯

=== 数据过滤获取 ===

个人觉得并没有什么用,完全可以用切片或索引器代替

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,因为上一行没有数据,无法计算变化率
正的是增长的百分率,负的是减少的半分率


=== 常用统计方法 ===

上一篇下一篇

猜你喜欢

热点阅读