Python大数据测试例题解析

本文章代码仅供参考,有多数错误,请自行辨别。

一、 数据处理

1、 删除“商品销售量.csv”数据中的空值行

# 导入必备的库
import pandas as pd

# 导入数据
sales = pd.read_csv('商品销售额.csv', encoding='gbk')

# 清理数据
sales_clean = sales.dropna()

# 导出数据
sales_clean.to_csv('商品销售额_clean.csv', index=False)

2、 统计“tmall_order_report.csv”中的收货地址,正序排序显示前五个

# 导入数据
tmall = pd.read_csv('tmall_order_report.csv', encoding='gbk')

# 统计 收货地址 次数
tmall_counts = tmall['收货地址'].value_counts()

# 获取前五个常见地址
top5_tmall_counts = tmall_counts.head(5)

# 按地址的出现次数正序排序
top5_tmall_sort = top5_tmall_counts.sort_values(ascending=True)

# 输出数据
print(top5_tmall_sort)

3、 算取“tmall_order_report.csv”中总金额的平均数

# 上题已导入 tmall_order_report.csv 的数据

# 计算总金额的平均数
average_amount = tmall['总金额'].mean()

# 输出数据
print(f'总金额平均数: {average_amount}')

4、 统计“tmall_order_report.csv”中每日的订单数量

# 上题已导入 tmall_order_report.csv 的数据

# 解析 '订单创建时间' 列为 datetime 类型
tmall['订单创建时间'] = pd.to_datetime(tmall['订单创建时间'], format='%Y/%m/%d %H:%M')

# 提取日期部分
tmall['订单日期'] = tmall['订单创建时间'].dt.date

# 统计每日的订单数量
daily_order_counts = tmall['订单日期'].value_counts().sort_index()

# 输出数据
print(daily_order_counts)

5、 将“销售额.csv”中的类型进行排序(降序)

# 导入数据
sell = pd.read_csv('销售额.csv', encoding='gbk')

# 排序数据(降序)
sell_sort = sell.sort_values(by='类型', ascending=False)

# 输出数据
print(sell_sort)

二、 可视化

1、 读取“销售额.csv”中的数据,使用matplotlib库绘制柱状图,要求显示数据,画布大小为(12,10)

# 导入必备的库
import pandas as pd
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimSun']

# 读取CSV文件
sell = pd.read_csv('销售额.csv', encoding='gbk')

# 创建画布
fig, ax = plt.subplots(figsize=(12, 10))

# 绘制柱状图
ax.bar(sell['类型'], sell['A'], color='skyblue', label='A')
ax.bar(sell['类型'], -sell['B'], color='salmon', label='B')

# 显示图形
plt.show()

2、根据任务一中清洗过的“商品销售量.csv“数据,使用seaborn画一个热力图,风格自定。不显示数据。

# 导入必备的库
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_csv('商品销售额_clean.csv', index_col='省份', encoding='gbk')

# 设置风格
sns.set(style='white')

plt.rcParams['font.sans-serif'] = ['SimSun']

# 创建热力图
plt.figure(figsize=(12, 8))
ax = sns.heatmap(data, cmap='cool')

# 设置标题
plt.title('商品销售额热力图')

# 显示图像
plt.show()

3、根据提供的json文件,用pyecharts画出关系图,要求线条弧度为0.3,颜色为source Layout为circular。

import json
from pyecharts import options as opts
from pyecharts.charts import Graph

with open('les-miserables.json', 'r', encoding='utf8') as file:
    data = json.load(file)

nodes = data['nodes']
links = data['links']
categories = data['categories']

graph = (
    Graph()
    .add(
        "",
        nodes,
        links,
        categories=categories,
        layout="circular",
        is_rotate_label=True
    )
    .set_series_opts(
        linestyle_opts=opts.LineStyleOpts(
            curve=0.3, 
            color='source'
        ),
    )
)

graph.render("Graph.html")

三、 业务分析(所用数据位“商品销售量.csv”)

基于 Python 实现历史最高温城市排名分 析

现有一份关于 2011-2022 年全国各城市的每日天气数据 17 17 集,字段说明如下表:

表 7 每日天气数据集说明表

列名 字段说明

city 城市

hightest_tem 最高气温

lowest_tem 最低气温

weather 天气

date 日期

wind_direction 风向

wind_level 风力等级

month_day 月-日

weekday 星期

请编写代码实现功能,数据集为“clean_day.csv”。 绘图过程中如有使用中文字体的地方,请统一使用 “SimSun”字体。

从数据集中取出 2011-2021 年的数据,计算出每个城市 在这 10 年中出现的最高温度,然后将该指标排名前 10 的城 市数据取出并绘制出这些城市最高温统计图进行分析,

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_csv('clean_day.csv')

# 将日期列转换为日期格式,并过滤出2011-2021年的数据
data['date'] = pd.to_datetime(data['date'])
data = data[(data['date'].dt.year >= 2011) & (data['date'].dt.year <= 2021)]

# 计算每个城市在2011-2021年期间的最高温度
max_temps = data.groupby('city')['hightest_tem'].max().reset_index()

# 获取最高温度排名前10的城市
top10_cities = max_temps.nlargest(10, 'hightest_tem')

print(top10_cities)

具体 绘图要求如下:

(1)使用 Seaborn 绘制出以上指标的柱状图,主题设 置为“whitegrid”,字体为“SimSun”,字体缩放因子设置 为 3;

(2)柱状图颜色设置为 Seaborn 中调色板“hls”的默 认颜色;

(3)柱状图上需要显示数据标签,数据标签中需要带 有单位(℃),颜色为黑色; (4)设置图像标题为“2011-2021 中高温城市排名”; 18 18

(5)横轴标签为“城市”,纵轴标签为“最高温(℃)”;

(6)横轴的刻度标签为各城市的名字;

(7)纵轴的刻度范围是(0,55)。

(8)绘制完成后将图片粘贴到答题报告对应位置。 图 2 结果示意图(图中数据请以实际计算结果为准)

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(6, 4))
plt.rcParams['font.sans-serif'] = ['SimSun']
ax = sns.barplot(x='city', y='hightest_tem', data=top10_cities, palette=sns.color_palette())

# 添加数据标签
for p in ax.patches:
    ax.annotate(f'{p.get_height()}℃', 
                (p.get_x() + p.get_width() / 2., p.get_height()), 
                ha='center', va='center', xytext=(0, 5), textcoords='offset points')

# 设置标题和标签
ax.set_title('2011-2021 中高温城市排名', fontsize=12)
ax.set_xlabel('城市', fontsize=10)
ax.set_ylabel('最高温(℃)', fontsize=10)

plt.show()

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇