1
我有一個數據幀,看起來像這樣:熊貓轉換日期時間,以分鐘
import pandas as pd
name = pd.Series(["A", "B", "C", "D", "E", "F"])
c1 = pd.Series(["0", "0", "01:56:00", "10:01:00", "120", "2 hours"])
c2 = pd.Series(["00:60:00", "0", "10", "12:00:00", "20 mins", "100"])
df = pd.DataFrame({"name": name, "time1": c1, "time2": c2})
print(df)
name time1 time2
0 A 0 00:60:00
1 B 0 0
2 C 01:56:00 10
3 D 10:01:00 12:00:00
4 E 120 20 mins
5 F 2 hours 100
在time1
和time2
列我想格式化像一個datetime
值轉換(小時:分鐘:秒)到分鐘。所需的輸出是這樣的:
name time1 time2
0 A 0 60
1 B 0 0
2 C 116 10
3 D 601 720
4 E 120 20 mins
5 F 2 hours 100
這是混亂的,因爲不是所有的值被格式化爲一個日期,以及一些細胞中含有的話(例如分鐘,小時),我想獨自離開現在
我想出了一種方法,通過遍歷行來替換日期時間值,檢查單元格是否包含:
,如果是的話進行簡單的轉換。但是,這種方法不能很好地擴展。有沒有更自然的方式在熊貓中做到這一點?
這似乎爲我張貼的例子中工作,但我的實際數據(其太大而無法在這裏發佈)當我嘗試將遮罩應用於列時,出現以下錯誤:'一元操作符的壞操作數類型:'float''。錯誤從何而來? – Simon
它在實際數據中似乎有些NaN,所以在'str.contains'中需要參數'na = False'。 – jezrael