【发布时间】:2020-04-01 20:13:06
【问题描述】:
我有一个 Excel 数据集,其中包含员工输入的工作时间的日期时间值。现在年底快到了,他们想报告它,但是它充满了错误的条目。所以我需要清理它。
以下是一些错误条目的示例。
面对此类数据集时,您会采取什么方法?
我首先使用df['Shiftdatum'] = pd.to_datetime(df.Shiftdatum, format='%Y-%m-%d', errors='coerce')将日期列转换为日期时间
在下面的示例数据中,它显示了一个 NaT
如何过滤掉包括行索引在内的这些 NaT?
[Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
Timestamp('2019-03-11 00:00:00'),
NaT,
Timestamp('2019-03-12 00:00:00')
初始样本数据:
{0: '2019-03-11 00:00:00',
1: '2019-03-11 00:00:00',
2: '2019-03-11 00:00:00',
3: '2019-03-11 00:00:00',
4: '2019-03-11 00:00:00',
5: '2019-03-11 00:00:00',
6: '2019-03-11 00:00:00',
7: '2019-03-11 00:00:00',
8: '2019-03-11 00:00:00',
9: '2019-03-11 00:00:00',
10: '2019-03-11 00:00:00',
11: '2019-03-11 00:00:00',
12: '2019-03-11 00:00:00',
13: '2019-03-11 00:00:00',
14: '2019-03-11 00:00:00',
15: '2019-03-11 00:00:00',
16: '33/11/2019',
17: '2019-03-12 00:00:00',
18: '2019-03-12 00:00:00',
19: '2019-03-12 00:00:00'}
【问题讨论】:
-
您需要处理异常值,不确定是否有一个一击解决方案。员工如何输入数据,excel?
-
@Datanovice 是的 excel,我知道这是一个很奇怪的场景......
-
@Datanovice 我更新了帖子,你能回答一下吗?
-
@Datanovice 哦,我现在明白了,通过代码修复无效条目并不容易(也不推荐),我认为识别这种情况是必需的:)