簡體   English   中英

從使用 d、w、m、y 表示天、周、月、年的 Pandas 數據框中獲取最小值和最大值

[英]Getting min and max values from Pandas dataframe that uses d, w, m, y to represent days, weeks, months, years

所以基本上我正在使用的 Pandas 數據框中的數據有一列給出了事件發生后的時間。 數據始終遵循格式#,然后是d、w、m、y 來表示天、周、月、年(2 d、17 w 等)。 我正在嘗試獲取最小值和最大值。 不幸的是,因為單位不同,這很困難:即使 2 是較小的數字,3 周也少於 2 個月,即使年份是較大的單位,150 周也比 1 年長。

我想實現一些復雜的代碼將所有內容轉換為天,然后對它們進行排名,但是有更好的解決方案嗎?

舉個例子,如果我有一個值為 120 d、3 w、2 y、15 m 和 14 d 的值列表,我將如何制作一個與我游戲最小(在本例中為 14 d)和最大的函數(2 歲)

示例如何將字符串列轉換為pd.Timedelta

d = {'Time':['120 d', '3 w', '2 y', '15 m', '14 d']}

df = pd.DataFrame(d)

df['Time_td'] = df['Time'].map(pd.Timedelta)

print(df)

print('Min is', df['Time_td'].min())
print('Max is', df['Time_td'].max())

印刷:

    Time           Time_td
0  120 d 120 days 00:00:00
1    3 w  21 days 00:00:00
2    2 y 730 days 11:38:24
3   15 m   0 days 00:15:00
4   14 d  14 days 00:00:00
Min is 0 days 00:15:00
Max is 730 days 11:38:24

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM