import numpy as np
import pandas as pd
from pandas import Series,DataFrame
练习
假设a是期中考试成绩,b是期末考试成绩,请自由创建b,并将其与a相加,求期中期末的平均值
假设张三期中考试数学被发现作弊,要记为0分,如何实现?
张六因为举报张三作弊有功,期中考试所有科目成绩加5分,如何实现?
后来老师发现有一道题出错了,为了安抚学生情绪,给每位学生a的科目都加20分,如何实现?
张二的语文,张四的物理,张六的地理未考,设置为NAN(注意:0和NAN不一样)
# 科目
columns =['语文','数学','英语','物理','化学','生物','历史','地理']# 索引
index =['张一','张二','张三','张四','张五','张六']# 在1-150之间,创建六行八列
a = DataFrame(np.random.randint(1,151,size=(6,8)),index,columns,dtype=int)
a
语文
数学
英语
物理
化学
生物
历史
地理
张一
133
23
68
105
60
144
90
42
张二
95
1
135
146
142
130
62
148
张三
31
28
38
115
42
50
113
59
张四
6
147
86
145
124
73
34
66
张五
67
9
42
16
47
34
44
100
张六
79
75
98
121
51
104
141
145
# 创建b,期末考试成绩
b = DataFrame(np.random.randint(1,151,size=(6,8)),index,columns,dtype=int)
b
a.dropna()# a.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)# 默认axis=0,把带NAN的所有行删除 # axis值的含义# * 0, or 'index' : Drop rows which contain missing values.# * 1, or 'columns' : Drop columns which contain missing value.
语文
数学
英语
物理
化学
生物
历史
地理
张二
42
76.0
56
149
17
133
68
98.0
张四
10
136.0
32
132
84
92
24
59.0
张五
22
32.0
62
137
27
139
53
121.0
张六
20
91.0
89
97
17
75
52
6.0
a
语文
数学
英语
物理
化学
生物
历史
地理
张一
138
135.0
3
84
63
11
70
NaN
张二
42
76.0
56
149
17
133
68
98.0
张三
104
NaN
16
64
41
73
27
14.0
张四
10
136.0
32
132
84
92
24
59.0
张五
22
32.0
62
137
27
139
53
121.0
张六
20
91.0
89
97
17
75
52
6.0
# axis=1 时删除的是列
a.dropna(axis=1)
语文
英语
物理
化学
生物
历史
张一
138
3
84
63
11
70
张二
42
56
149
17
133
68
张三
104
16
64
41
73
27
张四
10
32
132
84
92
24
张五
22
62
137
27
139
53
张六
20
89
97
17
75
52
a
语文
数学
英语
物理
化学
生物
历史
地理
张一
138
135.0
3
84
63
11
70
NaN
张二
42
76.0
56
149
17
133
68
98.0
张三
104
NaN
16
64
41
73
27
14.0
张四
10
136.0
32
132
84
92
24
59.0
张五
22
32.0
62
137
27
139
53
121.0
张六
20
91.0
89
97
17
75
52
6.0
"""
how : {'any', 'all'}, default 'any'
Determine if row or column is removed from DataFrame, when we have
at least one NA or all NA.
* 'any' : If any NA values are present, drop that row or column.
* 'all' : If all values are NA, drop that row or column.
"""
a.dropna(axis=1,how='any')# axis=1,how='any' 这一列,只要有一个值是NAN,就删除这一列
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame练习假设a是期中考试成绩,b是期末考试成绩,请自由创建b,并将其与a相加,求期中期末的平均值假设张三期中考试数学被发现作弊,要记为0分,如何实现?张六因为举报张三作弊有功,期中考试所有科目成绩加5分,如何实现?后来老师发现有一道题出错了,为了安抚学生情绪,给每位学生a的科目都加20分,如何实现?张二的语文,张四的物理,张六的地理未考,设置为NAN