python读取广州-湛江天气csv文件并做可视化仪表盘(一)

简介: python读取广州-湛江天气csv文件并做可视化仪表盘(一)

1.读取广-湛.csv文件

import pandas as pd
data = pd.read_csv('广-湛天气.csv')
data

3343328097f0450a807d22e49f9f26cf.png

2.去除多余字符

#去除多余字符
data[['最高温度','最低温度']] = data[['最高温度','最低温度']].apply(lambda x: x.str.replace('°','').replace('', '0'))
data.head()

f7781545193d4f04a384859c4155f34d.png

3.删除2023年数据,并计算平均温度保存到广湛csv文件中

# 删除包含 target_str 的行
data = data[~data['日期'].str.contains('2023-')]
# 将最高温度和最低温度转换为数值型
data['最高温度'] = data['最高温度'].astype(float)
data['最低温度'] = data['最低温度'].astype(float)
# 计算平均温度
data['平均温度'] = (data['最高温度'] + data['最低温度']) / 2
# 保存结果
data.to_csv('广湛天气.csv', index=False)

4.读取新数据

#读取新数据
data = pd.read_csv('广湛天气.csv')
data

c55d1ea5c8314bf2b0c70e3b63da6da4.png

5.分割日期与星期

#分割日期与星期
data[['日期','星期']] = data['日期'].str.split(' ',expand=True,n=1)
data

6d4003d4733a4b01ab9380eccd9a9f0c.png

6.判断是否下雨

#是否下雨
data.loc[data['天气'].str.contains('雨'),'下雨吗']='是'
data.fillna('否',inplace=True)
#分割日期时间
data['日期'] = pd.to_datetime(data['日期'])
data[['最高温度','最低温度']] = data[['最高温度','最低温度']].astype('int')
data['年份'] = data['日期'].dt.year
data['月份'] = data['日期'].dt.month
data['日'] = data['日期'].dt.day
# 预览
data.sample(5)

feb390cfd1214f9b91d1542ce6fdeb2c.png

7.# 按城市和天气分组,并计算每组的天数

# 按城市和天气分组,并计算每组的天数
grouped = data.groupby(['城市', '天气']).size().reset_index(name='天数')
# 将结果按城市分为两个DataFrame
gz_weather = grouped[grouped['城市'] == '广州']
zj_weather = grouped[grouped['城市'] == '湛江']
gz_weather

35ab4507c113451f9431748494693e9f.png

8.将原有的天气类型按照关键字划分,并存进新的 DataFrame 中

# 定义一个函数,将原有的天气类型按照关键字划分
def classify_weather(weather):
    if '多云' in weather:
        return '多云'
    elif '晴' in weather:
        return '晴'
    elif '阴' in weather:
        return '阴'
    elif '大雨' in weather:
        return '雨'
    elif '中雨' in weather:
        return '雨'
    elif '小雨' in weather:
        return '雨'
    elif '雷阵雨' in weather:
        return '雨'
    elif '雾' in weather:
        return '雾'
    else:
        return '其他'
# 将原有的天气类型按照关键字划分,并存进新的 DataFrame 中
new_data = data[['城市', '天气']].copy()
new_data['新天气'] = new_data['天气'].apply(classify_weather)
new_data

b984c31fc79d4d89a009b4161dd31751.png

9.#按照城市和新天气列进行分组,并计算每一种天气的天数

# 按照城市和新天气列进行分组,并计算每一种天气的天数
count_data = new_data.groupby(['城市', '新天气'])['天气'].count().reset_index()
# 根据条件筛选出符合要求的行
df1 = count_data.loc[count_data['城市'] == '广州']
df2 = count_data.loc[count_data['城市'] == '湛江']
# 将“天气”列名改为“天数”
df3 = df1.rename(columns={'天气': '天数'})
df4 = df2.rename(columns={'天气': '天数'})
# 输出结果
df3
df4

c6be128700004c6b83aeba7b0a6f575c.png

10.计算城市的每个月平均温度

# 筛选出平均温度等于最高温度和最低温度平均值的数据
data1 = data[(data['平均温度'] == (data['最高温度'] + data['最低温度']) / 2)]
# 筛选出城市为A或B的数据
data_AB = data1[(data1['城市'] == '广州') | (data1['城市'] == '湛江')]
# 将日期转换为月份并赋值给新的列
data_AB['月份'] = pd.to_datetime(data_AB['日期']).dt.month
# 按照城市和月份分组,计算每组的平均气温
grouped_AB = data_AB.groupby(['城市', '月份'])['平均温度'].mean().reset_index()
# 按照城市和月份排序
grouped_AB = grouped_AB.sort_values(['城市', '月份'])
# 打印结果
grouped_AB

8287c48a6627493391aa1ddfc5a5be21.png


相关文章
|
3天前
|
Python
python_读写excel、csv记录
python_读写excel、csv记录
8 0
|
1天前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
|
3天前
|
JSON JavaScript 数据格式
python遍历目录文件_结合vue获取所有的html文件并且展示
python遍历目录文件_结合vue获取所有的html文件并且展示
4 0
|
4天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
9天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
10天前
|
JSON 关系型数据库 数据库
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
38 0
|
10天前
|
数据挖掘 索引 Python
Python 读写 Excel 文件
Python 读写 Excel 文件
12 0
|
10天前
|
数据安全/隐私保护 Python
Python文件与目录操作:面试中的高频考点
【4月更文挑战第15天】本文介绍了Python文件和目录操作的面试重点,包括文件的读写、目录遍历及权限管理。强调了文件关闭、异常处理、特殊文件判断以及权限位和权限字符串的理解。提供了代码示例,如读写文件、遍历目录和更改文件权限,帮助读者在面试中表现出色。掌握这些技能将对编程求职之路大有裨益。
17 0
|
10天前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
10天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
24 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化