是否有一個/兩個班輪的方式來將Python/Pandas中的時間段字符串"1h30min"
轉換爲"90min"
?將「1h30min」字符串轉換爲Python中的分鐘數
-1
A
回答
1
常見的傢伙是太無聊了,讓我們一點點更具挑戰性:
from collections import defaultdict
import re
def humantime2minutes(s):
d = {
'w': 7*24*60,
'week': 7*24*60,
'weeks': 7*24*60,
'd': 24*60,
'day': 24*60,
'days': 24*60,
'h': 60,
'hr': 60,
'hour': 60,
'hours': 60,
}
mult_items = defaultdict(lambda: 1).copy()
mult_items.update(d)
parts = re.search(r'^(\d+)([^\d]*)', s.lower().replace(' ', ''))
if parts:
return int(parts.group(1)) * mult_items[parts.group(2)] + humantime2minutes(re.sub(r'^(\d+)([^\d]*)', '', s.lower()))
else:
return 0
print(humantime2minutes('1 week 3 days 1 hour 30 min'))
print(humantime2minutes('2h1m'))
輸出:
14490
121
現在嚴重的是,有是pandas.Timedelta():
print(pd.Timedelta('1h30min'))
輸出:
0 days 01:30:00
1
很簡單。只是由"h"
分割和轉換:
hour, minute = "1h30min".split("h")
minutes = (60 * int(hour)) + int(minute.strip("min"))
0
可以使用to_datetime
與參數format
:
import pandas as pd
s ="1h30min"
s = pd.to_datetime(s, format='%Hh%Mmin')
print s
1900-01-01 01:30:00
print type(s)
<class 'pandas.tslib.Timestamp'>
print s.hour * 60 + s.minute
90
print str(s.hour * 60 + s.minute) + 'min'
90min
另一個formats。
相關問題
- 1. 將整數分鐘轉換爲字符串「hh:mm」
- 2. 在java中將字符串時間和分鐘轉換爲UTC
- 3. 將字符串轉換爲複數python
- 4. 將Python數組轉換爲字符串
- 5. 將字符串轉換爲python數量
- 6. Python將字符串轉換爲整數?
- 7. php將數字轉換爲分鐘
- 8. 將數字秒轉換爲分鐘powerBI
- 9. 將字節字符串轉換爲python中的字符串
- 10. Python將字符串轉換爲字典
- 11. 將python字典轉換爲字符串
- 12. 將字符串轉換爲字典python
- 13. 將字符串轉換爲python字典
- 14. 將一個字符串中的數字轉換爲係數python
- 15. 將字符串時間戳轉換爲總分鐘
- 16. R將Chr字符串轉換爲分鐘和秒
- 17. 將字符串分鐘轉換爲小時
- 18. 將小時,分鐘,秒轉換爲小時字符串
- 19. 在Python中將字母數字字符串轉換爲數字字符串
- 20. 在python中將字符串/字符轉換爲整數
- 21. 如何將字符串中的字節轉換爲整數? Python
- 22. 將數字轉換爲python中的字符串
- 23. 如何將字符串轉換爲python中的數字
- 24. 將2位數字轉換爲python中的字符串
- 25. 將數字轉換爲python中的字符串
- 26. 將字符串轉換爲日期python
- 27. 將字符串轉換爲對象Python
- 28. Python - 將字符串轉換爲命令
- 29. Python Pandas將字符串轉換爲NaN
- 30. 將python字符串轉換爲變量
請定義「like」。它會在幾小時和幾分鐘後停止嗎?或者可以有幾天,幾周,幾年......?有空白嗎?大寫字母?標點? –
它與這種格式有多遠?它會永遠是「XhYmin」嗎? – Paul