[英]How can i convert column into days in csv having string values in years , months , weeks using Python 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.