如何获取昨日各城市气温min value?指定城市输出格式需求
解决方案:获取昨日城市最低气温并格式化输出
Hey there! Let's break down how to solve your two questions step by step, assuming you're working with a typical weather dataset (either stored in a database or as a flat file like CSV):
一、获取昨日所有城市的最低气温
如果你用SQL查询数据库
假设你有一张名为 weather_data 的表,包含字段 city(城市名)、temperature(气温值)、record_date(记录日期)。你可以用以下SQL语句来获取昨日所有城市的最低气温:
SELECT city, MIN(temperature) AS min_temperature, DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday_date FROM weather_data WHERE DATE(record_date) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) GROUP BY city;
这个查询会先筛选出昨日的所有记录,再按城市分组,每组取气温的最小值,同时返回昨日的日期。
如果你用Python处理本地数据(比如CSV)
如果你的数据存在CSV或Excel里,可以用Pandas来处理:
import pandas as pd from datetime import datetime, timedelta # 加载数据到DataFrame(替换成你的文件路径) df = pd.read_csv("weather_records.csv") # 计算昨日的日期,格式和你数据中的日期格式保持一致(这里用YYYY-MM-DD) yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d") # 筛选昨日数据,按城市分组取最低温 yesterday_city_mins = df[df["record_date"] == yesterday].groupby("city")["temperature"].min().reset_index() yesterday_city_mins["yesterday_date"] = yesterday # 查看结果 print(yesterday_city_mins)
二、按指定格式输出Indore、Bhopal、Mumbai的结果
SQL方式直接输出格式化结果
可以在查询中直接用CONCAT函数拼接成你要的格式:
SELECT CONCAT(city, ':', MIN(temperature), ':', DATE_SUB(CURDATE(), INTERVAL 1 DAY)) AS formatted_output FROM weather_data WHERE DATE(record_date) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND city IN ('Indore', 'Bhopal', 'Mumbai') GROUP BY city;
执行后会直接返回类似 Indore:18:2024-05-20 这样的结果行。
Python方式格式化输出
基于上面的Pandas处理结果,筛选指定城市后循环输出:
# 指定要输出的城市列表 target_cities = ["Indore", "Bhopal", "Mumbai"] # 筛选目标城市的数据 target_data = yesterday_city_mins[yesterday_city_mins["city"].isin(target_cities)] # 按要求格式输出 for _, row in target_data.iterrows(): print(f"{row['city']}:{row['temperature']}:{row['yesterday_date']}")
运行后会逐行输出符合要求的内容,比如:
Indore:18:2024-05-20
Bhopal:20:2024-05-20
Mumbai:24:2024-05-20
内容的提问来源于stack exchange,提问作者user_123
相关产品推荐
相关产品推荐

