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