数据科学与计算pandas
fillna() :
用指定内容来替换一些空字段
import pandas as pd
missing_values = ["n/a", "na", "--"]
df = pd.read_csv('property-data.csv', na_values = missing_values)
df.fillna(666, inplace = True)
print(df)
mean():
计算列的均值替换空单元格
import pandas as pd
df = pd.read_csv('property-data.csv')
x = df["ST_NUM"].mean()
print(x)
df["ST_NUM"].fillna(x, inplace = True)
print(df.to_string())
median():
计算列的中位数替换空单元格
import pandas as pd
df = pd.read_csv('property-data.csv')
x = df["ST_NUM"].median()
print(x)
df["ST_NUM"].fillna(x, inplace = True)
print(df)
练习
语文 | 数学 | 英语 | ||||
考试成绩 | 平时成绩 | 考试成绩 | 平时成绩 | 考试成绩 | 平时成绩 | |
小孙 | 90 | 80 | 80 | 70 | 60 | 60 |
小张 | 75 | 70 | 65 | 60 | 55 | 60 |
小韩 | 55 | 80 | 66 | 60 | 77 | 70 |
1.已知考试成绩占总成绩的60%,而平时的成绩占总成绩的40%,那么请你们帮忙算一算各位同学各个科目的最终成绩。
2.计算每个同学的平均分以及每个科目的平均分。
3.计算每个同学的最高分以及每个科目的最高分。
import pandas as pddata = {'语文考': [90, 75, 55],'语文平': [80, 70, 80],'数学考': [80, 65, 66],'数学平': [70, 60, 60],'英语考': [60, 55, 77],'英语平': [60, 60, 70]
}
index = ['小孙', '小张', '小韩']
df = pd.DataFrame(data, index=index)# 1.计算最终成绩
df['语文终'] = df['语文考'] * 0.6 + df['语文平'] * 0.4
df['数学终'] = df['数学考'] * 0.6 + df['数学平'] * 0.4
df['英语终'] = df['英语考'] * 0.6 + df['英语平'] * 0.4print(df)
print('\n')#2.计算每个同学的平均分以及每个科目的平均分
df['平均分'] = df[['语文终', '数学终', '英语终']].mean(axis=1)
print('\n')
sub_avg = df[['语文终', '数学终', '英语终']].mean(axis=0)
print(df['平均分'])
print(sub_avg)
print('\n')#3.计算每个同学的最高分以及每个科目的最高分
df['最高分'] = df[['语文终', '数学终', '英语终']].max(axis=1)
sub_max = df[['语文终', '数学终', '英语终']].max(axis=0)print(df['最高分'])
print(sub_max)
结果: