Python天气数据处理、数据清洗

文章目录

前言

一、获取原始数据

二、数据处理

1.代码

2.处理结果

总结



前言

        在工作的时候,需要做一个天气情况的报表,一开始没学习爬虫的时候,需要手动到天气网站上去截取天气数据做到表格里,复制粘贴下来的数据需要做一些处理,考虑用Python简化这些步骤。


一、获取原始数据

        从全国城市天气预报_城市天气预报查询_国内天气预报查询_天气网中进入需要查询的城市,选择40天天气,选中需要的内容复制粘贴到EXCEL表里,不同城市放到不同的SHEET里,序号、城市列为固定列,只需更新内容列。

Python天气数据处理、数据清洗_第1张图片

Python天气数据处理、数据清洗_第2张图片Python天气数据处理、数据清洗_第3张图片Python天气数据处理、数据清洗_第4张图片

二、数据处理

1.代码

        由于粘贴到EXCEL里的数据形式比较规律,因此只需找到排列规律进行操作即可,观察可知同类数据所在位置为序号间隔为3的等差数列,遍历数据列取出间隔为3的数据即可,取出数据后通过数据清洗呈现为自己想要的格式,代码如下:

import pandas as pd
import numpy as np
df2excel = pd.ExcelWriter('future.xlsx',engine='xlsxwriter')
#北京
sheetName="北京"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
A=sheet["序号"]
B=sheet["内容"]
C=sheet["城市"]
D=[]
E=[]
F=[]
n1=1
n2=2
n3=3
n=1
for i in range(0,120,3):
    S=B[i]
    D.append(S)
for j in range(1,120,3):
    S1=B[j]
    E.append(S1)
for k in range(2,121,3):
    S2=B[k]
    F.append(S2)     
DataSet1 = list(zip(D,E,F))
df = pd.DataFrame(data = DataSet1,columns=["日期","天气","温度"])
res=df['温度'].str.split('~',expand=True)
df[['低温','温度']]=res
df['温度']=df['温度'].str.replace('℃','')
riqi=df.pop('日期')
riqi=riqi.str[:5]
df.insert(0,'日期',riqi)

#上海
sheetName="上海"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
A=sheet["序号"]
B=sheet["内容"]
C=sheet["城市"]
D=[]
E=[]
F=[]
n1=1
n2=2
n3=3
n=1
for i in range(0,120,3):
    S=B[i]
    D.append(S)
for j in range(1,120,3):
    S1=B[j]
    E.append(S1)
for k in range(2,121,3):
    S2=B[k]
    F.append(S2)     
DataSet1 = list(zip(D,E,F))
df1 = pd.DataFrame(data = DataSet1,columns=["日期","天气","温度"])
res=df1['温度'].str.split('~',expand=True)
df1[['低温','温度']]=res
df1['温度']=df1['温度'].str.replace('℃','')
riqi=df1.pop('日期')
riqi=riqi.str[:5]
df1.insert(0,'日期',riqi)

#广州
sheetName="广州"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
A=sheet["序号"]
B=sheet["内容"]
C=sheet["城市"]
D=[]
E=[]
F=[]
n1=1
n2=2
n3=3
n=1
for i in range(0,120,3):
    S=B[i]
    D.append(S)
for j in range(1,120,3):
    S1=B[j]
    E.append(S1)
for k in range(2,121,3):
    S2=B[k]
    F.append(S2)     
DataSet1 = list(zip(D,E,F))
df3 = pd.DataFrame(data = DataSet1,columns=["日期","天气","温度"])
res=df3['温度'].str.split('~',expand=True)
df3[['低温','温度']]=res
df3['温度']=df3['温度'].str.replace('℃','')
riqi=df3.pop('日期')
riqi=riqi.str[:5]
df3.insert(0,'日期',riqi)

df.to_excel(df2excel,index=False,sheet_name="北京")
df1.to_excel(df2excel,index=False,sheet_name="上海")
df3.to_excel(df2excel,index=False,sheet_name="广州")
df2excel.save()

2.处理结果

结果如下:

Python天气数据处理、数据清洗_第5张图片Python天气数据处理、数据清洗_第6张图片

这里用ExcelWriter()函数在同一个表格里追加不同的Sheet。

df2excel = pd.ExcelWriter('future.xlsx',engine='xlsxwriter')
sheetName="北京"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
sheetName="上海"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
sheetName="广州"
sheet=pd.read_excel('weilai.xlsx',sheet_name=sheetName)
df.to_excel(df2excel,index=False,sheet_name="北京")
df1.to_excel(df2excel,index=False,sheet_name="上海")
df3.to_excel(df2excel,index=False,sheet_name="广州")
df2excel.save()


总结

        上述操作在原数据获取的时候还比较麻烦,后续考虑用爬虫的方式解决这一块。

你可能感兴趣的:(python,开发语言)