gpt4 book ai didi

python - "How to convert a Duration(ex. 2h 50m, 8h 35m) an object column in a dataframe into a datetime column with only minutes?"

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:34 25 4
gpt4 key购买 nike

我的数据框中有一个名为 Duration 的列。

列中的持续时间格式为 2h 50m、8h 35m、19h 等等

此列类型是一个'object'

如何将整个列转换为分钟,例如 2h 50m = 170m、8h 35m = 515m?

我试过用

df['Col_name'] = pd.to_datetime(df['Col_name'])

最佳答案

使用Series.str.extract对于数值,按 60 计算多个小时,按 Series.add 求和, 转换为整数、字符串并最后添加 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_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 函数处理此数据,则可以将其转换为 timedeltas:

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

关于python - "How to convert a Duration(ex. 2h 50m, 8h 35m) an object column in a dataframe into a datetime column with only minutes?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56697983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com