本文主要是介绍力扣:197. 上升的温度(Python3),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
表:
Weather
+---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | recordDate | date | | temperature | int | +---------------+---------+ id 是该表具有唯一值的列。 该表包含特定日期的温度信息编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的
id
。返回结果 无顺序要求 。
结果格式如下例子所示。
来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例:
示例 1:
输入:
Weather 表:
+----+------------+-------------+ | id | recordDate | Temperature | +----+------------+-------------+ | 1 | 2015-01-01 | 10 | | 2 | 2015-01-02 | 25 | | 3 | 2015-01-03 | 20 | | 4 | 2015-01-04 | 30 | +----+------------+-------------+
输出:+----+ | id | +----+ | 2 | | 4 | +----+
解释:2015-01-02 的温度比前一天高(10 -> 25) 2015-01-04 的温度比前一天高(20 -> 30)
解法:
先根据日期排序,接着比对后一天是不是和当前间隔1天且温度更高。
知识点:
1.pd.Timedelta(value, unit=None, **kwargs):表示两个datetime值之间的差。value:日期形式字符串;unit:指定value的类型。创建方式比如:
pd.Timedelta(days=1)表示间隔1天。
代码:
import pandas as pddef rising_temperature(weather: pd.DataFrame) -> pd.DataFrame:weather.sort_values('recordDate', inplace=True)w = list(zip(weather['id'], weather['recordDate'], weather['temperature']))return pd.DataFrame({'id': [w[index][0] for index in range(1, len(w)) if w[index][1] - w[index - 1][1] == pd.Timedelta(days=1) and w[index][2] > w[index - 1][2]]})
这篇关于力扣:197. 上升的温度(Python3)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!