标签:现在 天气 test max 多个 编写 excel 注意 分析
简单的查询其实根本不能满足实际开发的需求
需求可能是让你查一下2018年的销售额啊,2019年温度超过30℃的天数啊等等的
这些需求都是有异曲同工的,就是带条件的查询
这里我们先自己设计一个表格,并将其读取出来
import pandas as pd
df = pd.read_excel(‘test1.xlsx‘)
print(df)
data wendu_min wendu_max weather fengji
0 2020-01-01 1℃ 15℃ 晴 1
1 2020-01-02 1℃ 16℃ 多云 2
2 2020-01-03 1℃ 17℃ 小雨 4
3 2020-01-04 4℃ 18℃ 阴 2
4 2020-01-05 1℃ 19℃ 大雨 1
5 2020-01-06 3℃ 20℃ 小雨 3
6 2020-01-07 1℃ 21℃ 晴 5
7 2020-01-08 1℃ 22℃ 多云 2
8 2020-01-09 1℃ 23℃ 阴 1
9 2020-01-10 0℃ 24℃ 小雨 3
10 2020-01-11 2℃ 25℃ 多云 4
为了查询方便,所以我将日期当做查询的索引
df.set_index(‘data‘, inplace=True)
这个inplace是指修改可以及时看到
wendu_min wendu_max weather fengji
data
2020-01-01 1℃ 15℃ 晴 1
2020-01-02 1℃ 16℃ 多云 2
2020-01-03 1℃ 17℃ 小雨 4
2020-01-04 4℃ 18℃ 阴 2
2020-01-05 1℃ 19℃ 大雨 1
2020-01-06 3℃ 20℃ 小雨 3
2020-01-07 1℃ 21℃ 晴 5
2020-01-08 1℃ 22℃ 多云 2
2020-01-09 1℃ 23℃ 阴 1
2020-01-10 0℃ 24℃ 小雨 3
2020-01-11 2℃ 25℃ 多云 4
像这种温度带着的℃,不便于数据的分析,所以我们在刚开始的时候,可以将其去掉
df[‘wendu_min‘] = df[‘wendu_min‘].str.replace(‘℃‘, ‘‘).astype(‘int32‘)
df[‘wendu_max‘] = df[‘wendu_max‘].str.replace(‘℃‘, ‘‘).astype(‘int32‘)
wendu_min wendu_max weather fengji
data
2020-01-01 1 15 晴 1
2020-01-02 1 16 多云 2
2020-01-03 1 17 小雨 4
2020-01-04 4 18 阴 2
2020-01-05 1 19 大雨 1
2020-01-06 3 20 小雨 3
2020-01-07 1 21 晴 5
2020-01-08 1 22 多云 2
2020-01-09 1 23 阴 1
2020-01-10 0 24 小雨 3
2020-01-11 2 25 多云 4
数据都处理完毕,现在就开始进行查询
我想查一月9号的最高温度
df.loc[‘2020-01-09‘, ‘wendu_max‘]
23
先传行索引,再传列索引
我想查一月6号到一月10号之间的所有数据
df.loc[‘2020-01-06‘:‘2020-01-10‘, :]
wendu_min wendu_max weather fengji
data
2020-01-06 3 20 小雨 3
2020-01-07 1 21 晴 5
2020-01-08 1 22 多云 2
2020-01-09 1 23 阴 1
2020-01-10 0 24 小雨 3
:代表着所有的数据
我想得到最低温度大于1℃的数据
df.loc[df[‘wendu_min‘] > 1, :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
2020-01-11 2 25 多云 4
我想要最低温度大于1℃,最高温度小于25℃的天气
df.loc[(df[‘wendu_min‘] > 1) & (df[‘wendu_max‘] < 25), :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
多个条件要用括号括起来,然后用&连接
如果lambda不太熟练就跳过这里
df.loc[lambda df: (df[‘wendu_min‘] > 1) & (df[‘wendu_max‘] < 25), :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
我认为最低温度大于1℃,最高温度小于25℃的就是好天气,所以先写一个函数
def goodWeather(df):
return (df[‘wendu_min‘] > 1) & (df[‘wendu_max‘] < 25)
然后再使用这个函数进行数据查询
df.loc[goodWeather, :]
wendu_min wendu_max weather fengji
data
2020-01-04 4 18 阴 2
2020-01-06 3 20 小雨 3
注意这里放的是函数名,而不是函数名()
标签:现在 天气 test max 多个 编写 excel 注意 分析
原文地址:https://www.cnblogs.com/jevious/p/13375622.html