题目要求
# 1.创建一个学生DataFrame,内容如下创建的样式
# 2.修改索引为【1,2,3,4,5】
# 3.分别输出所有人的英语成绩和数分成绩
# 4.输出性别为女的所有行
# 5.将数分、高代、解几的列名修改为微积分,高等代数,解析几何
# 6.增加一列,列名为平均值,内容为每名学生所有科目的平均值
# 7增加一行,学号为2308,姓名为‘平均值’,性别为空,其他每列为对应列的平均值
代码实现
import pandas as pd
df = pd.DataFrame()
data = {'学号': ['2308024241', '2308024241', '2308024241', '2308024241', '2308024241'],
'姓名': ['成龙', '周一', '张波', '朱浩', '封印'],
'性别': ['男', '女', '男', '男', '女'],
'英语': [76, 66, 85, 65, 73],
'体育': [78, 91, 81, 50, 88],
'军训': [77, 75, 80, 92, 75],
'数分': [40, 47, 45, 72, 61],
'高代': [23, 47, 45, 62, 47],
'解几': [60, 44, 60, 71, 46]
}
df = pd.DataFrame(data)
# print(df)
print('修改索引------------------------------')
df = pd.DataFrame(data, index=['1', '2', '3', '4', '5']) # 修改索引
print(df)
print('英语数学成绩-------------------------')
print(df['英语'])
print(df['数分'])
print('输出性别女的-------------------------------------------')
print(df.loc[df['性别']=='女']) # 输出性别女的行
print('修改列名-------------------------------------')
df.rename(columns={'数分': '微积分', '高代':'高等代数', '解几': '解析几何'},inplace=True)
print(df)
print('计算每人平均值,和--------------------------------------------')
temp = df[['英语', '体育', '军训', '微积分', '高等代数', '解析几何']]
df['total'] = temp.sum(axis=1)
df['avg'] = temp.mean(axis=1)
print(df)
print('计算各科的平均-----------------------------------------------')
colmean = df[['英语', '体育', '军训', '微积分', '高等代数', '解析几何']].mean()
colmean['姓名'] = '平均值'
df = df.append(colmean, ignore_index=True)
print(df)