Pandas 读取csv文件后对数据的基础操作(小练习)

数据源是一个北京的天气报告.csv文件(本文输出只展示文件的前六行内容)
导入:
import pandas as pd
读取文件:
data=pd.read_csv('./BJ_tianqi.csv') 
查看文件前6行
print(data.head(6))

输出结果:
Pandas 读取csv文件后对数据的基础操作(小练习)_第1张图片

改变数据行的索引 inplace=True在原来数据的基础上修改
#将日期作为行索引
data.set_index('日期',inplace=True)
data.index.name = None

修改后:(将日期作为了行索引)
Pandas 读取csv文件后对数据的基础操作(小练习)_第2张图片

将最高温度的值变成数字
#利用字符串的替换操作replace
data.loc[:,'最高温度']= data['最高温度'].str.replace('℃','').astype('int32')
data.loc[:,'最低温度']= data['最低温度'].str.replace('℃','').astype('int32')

结果:
Pandas 读取csv文件后对数据的基础操作(小练习)_第3张图片

输出全年最高温度那一天信息 ascending=True升序
#首先根据最高温度降序排列,排列之后取第一行即可
result=data.sort_values(by='最高温度',ascending=False)
#输出以最高温度排序后的所有数据
print(result)  
#取第一行,也就是最高温度那一天的所有信息
print(result.iloc[0,:])   

输出结果:
result:Pandas 读取csv文件后对数据的基础操作(小练习)_第4张图片
最高温度那一天的数据:
Pandas 读取csv文件后对数据的基础操作(小练习)_第5张图片

获取指定日期的最高和最低温度
#获取指定日期的最高和最低温度
data.loc[['2019/1/3','2019/1/4','2019/1/5'],['最高温度','最低温度']]
#最高温度大于32的所有信息
data.loc[data['最高温度']>32]
# 最高温度小于30 ,最低温度>20的所有信息
data.loc[(data['最高温度']<30)&(data['最低温度']>20)]
查询9月的所有数据:
#首先要从日期中找到9月的日期
# '2019/1/1'  '2019/2/1' '2019/9' 现在都是字符串类型的日期
index_list = data.index.tolist()
# i.startswith("2019/9") -> bool True ,False  找到以字符串‘2019/9’开头的日期,是9月的返回的就是True
result = [i.startswith("2019/9") for i in index_list]  #遍历index_list,找到所有以"2019/9"开头的
data.loc[result,:] #这样就找到了所有的9月份数据

结果会显示9月一整月的所有信息,这里只显示前6行
Pandas 读取csv文件后对数据的基础操作(小练习)_第6张图片

添加一列,温差
data.loc[:,'温差'] = data['最高温度'] - data['最低温度']
设置温差类别
# 温差>=10 ,大温差  <10 为正长
data.loc[:,'温差类型'] = ['大温差' if value>=10 else '正常' for value in data['温差']]
全年里面有多少天是正常温差
#分组
data.loc[:,'温差类型'].value_counts()
排序,根据温差数据降序排序
data.sort_values(by='温差',ascending=False)
#两个条件,排序
data.sort_values(by=['最高温度','温差'],ascending=False)
data.sort_values(by=['最高温度','温差'],ascending=[False,True])

你可能感兴趣的:(Pandas,Python案例分析)