pandas溫差查詢案例的實現
任務詳情
給定一各地 2016 年 1 月和 2 月各個時間點的溫度表格,表格預覽見頁面下方。
數據表的第二列表示當前時間,數據表第一行第三列到第一行最后一列表示地點。
如:表格的第二行第三列 30.36 表示:Vancouver (溫哥華)在 2016-01-01 00:00:00 這一時刻的溫度是 30.36 度(華氏度)。
程序給定一個日期(date)和一個地點(place),要求返回該地在這個日期下的溫差(攝氏度)。
注意:華氏度需要轉換成攝氏度!
華氏度轉攝氏度公式:攝氏度 = (華氏度 - 32) * 5 / 9
溫差:某日最高溫度 - 某日最低溫度
任務要求
程序給定日期 date 和地點 place 的數據類型均是 str 類型;
程序返回結果的數據類型是 float 類型,如果最終結果是 numpy.float64 數據類型,請手動轉換成 Python 原生的 float 數據類型;
結果需要四舍五入保留小數點后 2 位,請在得到最終結果后處理小數問題,否則可能導致結果有偏差。
測試用例
輸入:date = ‘2月5日’,place = ‘Dallas’
輸出:-5.05
解釋:查詢表格可知,Dallas 在 2月 5 日溫度的最高值和最低值分別是 57.09 華氏度和 34.18 華氏度,
兩者的溫差是 22.91 華氏度,轉換為攝氏度:(22.91 - 32) * 5 / 9 = -5.05
輸入:date= ‘2月18日’,place = ‘Houston’
輸出:-1.78
解釋:查詢表格可知,Dallas 在 2月 5 日溫度的最高值和最低值分別是 75.7 華氏度和 46.9 華氏度,
兩者的溫差是 28.8 華氏度,轉換為攝氏度:(28.8 - 32) * 5 / 9 = -1.7777…. ≈ 1.78
輸入:date = ‘1月21日’,place = 'Las Vegas’
輸出:-1.99
任務實現
import pandas
class Solution:
? ? def temperature(self, date: str, place: str) -> float:
? ? ? ? # 將查詢日期轉換為日期字符串
? ? ? ? month, day_ = date.split("月")
? ? ? ? day, _ = day_.split("日")
? ? ? ? if len(month) == 1:
? ? ? ? ? ? month = "0" + month
? ? ? ? if len(day) == 1:
? ? ? ? ? ? day = "0" + day
? ? ? ? date_str = "2016" + "-" + month + "-" + day
? ? ? ? # 讀取數據
? ? ? ? url = "http://ws1.itmc.org.cn:80/JS00101/data/user/4799/208/fj_4097_temperature_2016_1_2.csv"
? ? ? ? temperature_data = pandas.read_csv(url, sep=",")
? ? ? ? # 獲取數據的日期字符串
? ? ? ? temperature_data["day"] = temperature_data["datetime"].str[:10]
? ? ? ? # 根據日期字符串選擇指定日期數據行
? ? ? ? day = temperature_data[temperature_data["day"] == date_str]
? ? ? ? # 根據地點選擇選擇溫度數據行
? ? ? ? city = day[place]
? ? ? ? # 溫度單位轉換
? ? ? ? temperature = (city.max() - city.min() - 32) * 5 / 9
? ? ? ? # 溫度精度處理
? ? ? ? return float(temperature.round(2))
print(Solution.temperature(Solution, date="2月5日", place="Dallas"))
print(Solution.temperature(Solution, date="2月18日", place="Houston"))
print(Solution.temperature(Solution, date="1月21日", place="Las Vegas"))輸出為:
-5.05
-1.78
-1.99
到此這篇關于pandas溫差查詢案例的實現的文章就介紹到這了,更多相關pandas溫差查詢 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Python數據分析之?Pandas?Dataframe修改和刪除及查詢操作
- Pandas使用query()優(yōu)雅的查詢實例
- 解決一個pandas執(zhí)行模糊查詢sql的坑
- Pandas 模糊查詢與替換的操作
- pandas 查詢函數query的用法說明
- pandas 像SQL一樣使用WHERE IN查詢條件說明
- 詳解pandas DataFrame的查詢方法(loc,iloc,at,iat,ix的用法和區(qū)別)
- pandas全表查詢定位某個值所在行列的方法
- 淺談pandas中Dataframe的查詢方法([], loc, iloc, at, iat, ix)
- Python數據分析之如何利用pandas查詢數據示例代碼
相關文章
Python實現在matplotlib中兩個坐標軸之間畫一條直線光標的方法
這篇文章主要介紹了Python實現在matplotlib中兩個坐標軸之間畫一條直線光標的方法,涉及Python操作matplotlib模塊繪圖的相關技巧,需要的朋友可以參考下2015-05-05
pytorch.range()和pytorch.arange()的區(qū)別及說明
這篇文章主要介紹了pytorch.range()和pytorch.arange()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
巧妙使用Python裝飾器處理if...elif...else
大家好,今天在 Github 閱讀 EdgeDB[1] 的代碼,發(fā)現它在處理大量if…elif…else的時候,巧妙地使用了裝飾器,方法設計精巧,分享給大家一下,歡迎收藏學習,喜歡點贊支持2021-11-11

