【发布时间】:2022-01-18 18:17:15
【问题描述】:
0 18:30
1 24:50
2 33:21
3 28:39
4 27:30
5 21:26
6 16:42
7 16:48
8 26:07
9 18:13
10 27:15
11 24:33
12 29:43
13 NaN
14 NaN
15 NaN
16 24:58
17 26:14
18 27:36
19 33:27
Name: Minutes, dtype: object
我有一个名为Minutes 的列,它表示执行一项任务所花费的分钟数。该列采用MM:SS 格式,没有毫秒或小时。对于那些没有执行任务的人,有一些Null 值,我想用00:00 替换它们。我尝试使用
datetime
df['Minutes'] = df['Minutes'].apply(pd.to_datetime, format = '%M:%S', errors='coerce')
这给了我
1 1900-01-01 00:24:50
2 1900-01-01 00:33:21
3 1900-01-01 00:28:39
4 1900-01-01 00:27:30
5 1900-01-01 00:21:26
我想这很好,但我的目标是能够通过花费在任务上的最多时间对这些列执行排序。在我应用pd.to_datetime 之后,该列的数据类型仍然是一个对象。当我尝试排序时,我面临:
KeyError Traceback(最近一次调用最后一次) 在 ----> 1 df.sort_values(by=df['Minutes'], 升序=True) ~\anaconda3\lib\site-packages\pandas\core\frame.py 在 sort_values(self,by,axis,ascending,inplace,kind,na_position,ignore_index,key) 5453 5454 由 = 由 [0] -> 5455 k = self._get_label_or_level_values(按,轴=轴) 5456 5457 # 需要重新包装系列中的列以应用键功能 ~\anaconda3\lib\site-packages\pandas\core\generic.py in _get_label_or_level_values(self, key, axis) 1682 值 = self.axes[轴].get_level_values(key)._values 1683 其他: -> 1684 引发 KeyError(键) 1685 第1686章
【问题讨论】:
标签: python pandas dataframe datetime timedelta