2024-04-25 13:44:47 发布
网友
我的数据框中有一个名为Duration的列。你知道吗
列中的持续时间格式为2h 50m, 8h 35m, 19h and so on。你知道吗
2h 50m, 8h 35m, 19h and so on
此列类型是'object'。你知道吗
'object'
如何将整根柱子换算成2小时50米=170米,8小时35米=515米?你知道吗
我试过用
df['Col_name'] = pd.to_datetime(df['Col_name'])
使用^{}表示数值,用60表示多个小时,用^{}表示总和,转换为整数、字符串和最后的加法m:
60
m
h = df['Col_name'].str.extract('(\d+)h', expand=False).astype(float) * 60 m = df['Col_name'].str.extract('(\d+)m', expand=False).astype(float) df['new'] = h.add(m, fill_value=0).astype(int).astype(str) + 'm'
另一个解决方案,谢谢@anky\u 91:
df['new1'] = (pd.to_timedelta(df['Col_name']).dt.seconds // 60).astype(str) + 'm' print (df) Col_name new new1 0 2h 50m 170m 170m 1 8h 35m 515m 515m 2 19h 1140m 1140m
但是,如果以后需要通过datetimelike函数处理此数据,可以将其转换为TimeDelta:
df['timedelta'] = pd.to_timedelta(df['Col_name']) print (df) Col_name new new1 timedelta 0 2h 50m 170m 170m 02:50:00 1 8h 35m 515m 515m 08:35:00 2 19h 1140m 1140m 19:00:00
使用^{} 表示数值,用} 表示总和,转换为整数、字符串和最后的加法
60
表示多个小时,用^{m
:另一个解决方案,谢谢@anky\u 91:
但是,如果以后需要通过datetimelike函数处理此数据,可以将其转换为TimeDelta:
相关问题 更多 >
编程相关推荐