将pandas中的HH:MM列转换为分钟列[英] Convert a column in pandas of HH:MM to minutes

本文是小编为大家收集整理的关于将pandas中的HH:MM列转换为分钟列的处理方法,想解了将pandas中的HH:MM列转换为分钟列的问题怎么解决?将pandas中的HH:MM列转换为分钟列问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想将数据集中 hh:mm 格式的列转换为分钟.我尝试了以下代码,但它显示"AttributeError: 'Series' object has no attribute 'split'".数据格式如下.我在数据集中也有 nan 值,计划是计算值的中值,然后用中值填充具有 nan 的行

02:32
02:14
02:31
02:15
02:28
02:15
02:22
02:16
02:22
02:14

到目前为止我已经尝试过了

 s = dataset['Enroute_time_(hh mm)']

   hours, minutes = s.split(':')
   int(hours) * 60 + int(minutes)

推荐答案

我建议你避免按行计算.您可以对 Pandas/NumPy 使用矢量方法:

df = pd.DataFrame({'time': ['02:32', '02:14', '02:31', '02:15', '02:28', '02:15', 
                            '02:22', '02:16', '02:22', '02:14', np.nan]})

values = df['time'].fillna('00:00').str.split(':', expand=True).astype(int)
factors = np.array([60, 1])

df['mins'] = (values * factors).sum(1)

print(df)

     time  mins
0   02:32   152
1   02:14   134
2   02:31   151
3   02:15   135
4   02:28   148
5   02:15   135
6   02:22   142
7   02:16   136
8   02:22   142
9   02:14   134
10    NaN     0

本文地址:https://www.itbaoku.cn/post/1728106.html