五、pandas-DataFrame-案例

suaxi
2025-11-28 / 0 评论 / 11 阅读 / 正在检测是否收录...
(1)学生成绩分析

某班级的学生成绩如下:

姓名语文数学英语
孙笑川909565
药水哥919670
Giao哥808990
刘波758895

1.计算每名学生的总分和平均分
2.找出数学成绩高于90分或英语成绩高于85分的学生
3.按总分降序排序(显示前三名)

import numpy as np
import pandas as pd

data = {
    "姓名": ["孙笑川", "药水哥", "Giao哥", "刘波"],
    "语文": [90, 91, 80, 75],
    "数学": [95, 96, 89, 88],
    "英语": [65, 70, 90, 95]
}

scores = pd.DataFrame(data)
print(scores)

      姓名  语文  数学  英语
0    孙笑川  90  95  65
1    药水哥  91  96  70
2  Giao哥  80  89  90
3     刘波  75  88  95
scores['总分'] = scores[['语文', '数学', '英语']].sum(axis=1)
print(scores)
print("================================================")
# scores['平均分'] = scores['总分'] / 3
scores['平均分'] = scores[['语文', '数学', '英语']].mean(axis=1)
print(scores)

      姓名  语文  数学  英语   总分
0    孙笑川  90  95  65  250
1    药水哥  91  96  70  257
2  Giao哥  80  89  90  259
3     刘波  75  88  95  258
================================================
      姓名  语文  数学  英语   总分        平均分
0    孙笑川  90  95  65  250  83.333333
1    药水哥  91  96  70  257  85.666667
2  Giao哥  80  89  90  259  86.333333
3     刘波  75  88  95  258  86.000000
print(scores[(scores['数学'] > 90) | (scores['英语'] > 85)])

      姓名  语文  数学  英语   总分        平均分
0    孙笑川  90  95  65  250  83.333333
1    药水哥  91  96  70  257  85.666667
2  Giao哥  80  89  90  259  86.333333
3     刘波  75  88  95  258  86.000000
# print(scores.sort_values('总分', ascending=False).head(3))
print(scores.nlargest(3, columns='总分'))

      姓名  语文  数学  英语   总分        平均分
2  Giao哥  80  89  90  259  86.333333
3     刘波  75  88  95  258  86.000000
1    药水哥  91  96  70  257  85.666667


(2)销售数据分析

某公司销售数据如下:

产品名称苹果西瓜葡萄
单价(斤/元)8.53.5105.5
销量(斤)5010020300
  1. 计算每种产品的总销售额
    2.找出销售额最高的商品
    3.按销售额降序排序
import numpy as np
import pandas as pd

data = {
    "产品名称": ["苹果", "西瓜", "葡萄", "梨"],
    "单价(斤/元)": [8.5, 3.5, 10, 5.5],
    "销量(斤)": [50, 100, 20, 300]
}

df = pd.DataFrame(data)
print(df)

  产品名称  单价(斤/元)  销量(斤)
0   苹果      8.5     50
1   西瓜      3.5    100
2   葡萄     10.0     20
3    梨      5.5    300
df['总销售额'] = df['单价(斤/元)'] * df['销量(斤)']
print(df)

  产品名称  单价(斤/元)  销量(斤)    总销售额
0   苹果      8.5     50   425.0
1   西瓜      3.5    100   350.0
2   葡萄     10.0     20   200.0
3    梨      5.5    300  1650.0
print(df.nlargest(1, columns='总销售额'))

  产品名称  单价(斤/元)  销量(斤)    总销售额
3    梨      5.5    300  1650.0
print(df.sort_values('总销售额', ascending=False))

  产品名称  单价(斤/元)  销量(斤)    总销售额
3    梨      5.5    300  1650.0
0   苹果      8.5     50   425.0
1   西瓜      3.5    100   350.0
2   葡萄     10.0     20   200.0


(3)电商用户行为分析

某电商平台的用户行为数据如下:

用户ID用户名商品类别商品单价购买数量
1孙笑川电子产品30005
2药水哥服装20010
3Giao哥电子产品50005
4刘波日用50020
冬泳怪鸽五金3015

1.计算每位用户的总消费金额
2.找出消费金额最高的用户
3.计算用户的平均消费金额(保留两位小数)
4.统计电子产品的总购买数量

import numpy as np
import pandas as pd

data = {
    "用户ID": [1, 2, 3, 4, 5],
    "用户名": ["孙笑川", "药水哥", "Giao哥", "刘波", "冬泳怪鸽"],
    "商品类别": ["电子产品", "服装", "电子产品", "日用", "五金"],
    "商品单价": [3000, 200, 5000, 500, 30],
    "购买数量": [5, 10, 5, 20, 15],
}

df = pd.DataFrame(data)
print(df)

   用户ID    用户名  商品类别  商品单价  购买数量
0     1    孙笑川  电子产品  3000     5
1     2    药水哥    服装   200    10
2     3  Giao哥  电子产品  5000     5
3     4     刘波    日用   500    20
4     5   冬泳怪鸽    五金    30    15
df['总消费金额'] = df['商品单价'] * df['购买数量']
print(df)

   用户ID    用户名  商品类别  商品单价  购买数量  总消费金额
0     1    孙笑川  电子产品  3000     5  15000
1     2    药水哥    服装   200    10   2000
2     3  Giao哥  电子产品  5000     5  25000
3     4     刘波    日用   500    20  10000
4     5   冬泳怪鸽    五金    30    15    450
print(df.nlargest(1, columns='总消费金额'))

   用户ID    用户名  商品类别  商品单价  购买数量  总消费金额
2     3  Giao哥  电子产品  5000     5  25000
cost = df['总消费金额'].mean()
print(cost)

10490.0
print(df[df['商品类别'] == '电子产品']['购买数量'].sum())

10
0

评论 (0)

取消