g*******u 发帖数: 3948 | 1 问题很简单。
我刚用实在不熟悉
就是我有些列是date的数据 在pandas里面是 object type
我需要
比如
df['DOB'] = pd.to_datetime(df['DOB'])
先转成datetime 。 本来很简单
可是里面有些dob被人数错误了, 比如 2018 输进了3018 结果 直接 to_datetime 出错
我本来想转完 再把 离谱的数据删掉
现在直接错处 没法搞
要是用字符串如 解析 有太麻烦。
哪位有快速的办法呢?
thx |
e*******o 发帖数: 4654 | 2 先按str 读进来,改正,再转换成datetime |
g*******u 发帖数: 3948 | 3 没法改正啊 比如出来个 4217 怎么改, 只能删掉吧
【在 e*******o 的大作中提到】 : 先按str 读进来,改正,再转换成datetime
|
g*******u 发帖数: 3948 | 4 我之前就想过先读近来再转
觉得麻烦
所以问问有没有其他更简单的方法
这个转datetime 也是的, 3018 居然都out了, 要不然简单死了
【在 e*******o 的大作中提到】 : 先按str 读进来,改正,再转换成datetime
|
e*******o 发帖数: 4654 | 5 是的,改也是改明显的错误。
【在 g*******u 的大作中提到】 : 没法改正啊 比如出来个 4217 怎么改, 只能删掉吧
|
g****t 发帖数: 31659 | 6 你先把错误的pattern写个technical spec。然后就可以改了。
如果你不知道3017应该是什么,写不出来spec,那当然没法改了。
没有slides,不要干活。
: 没法改正啊 比如出来个 4217 怎么改, 只能删掉吧
【在 g*******u 的大作中提到】 : 我之前就想过先读近来再转 : 觉得麻烦 : 所以问问有没有其他更简单的方法 : 这个转datetime 也是的, 3018 居然都out了, 要不然简单死了
|
x***u 发帖数: 297 | 7 如果只是要忽略错误但是返回原值以待处理,可以用参数 errors=‘ignore’
errors : {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’
If ‘raise’, then invalid parsing will raise an exception
If ‘coerce’, then invalid parsing will be set as NaT
If ‘ignore’, then invalid parsing will return the input |
h*******8 发帖数: 1 | 8 thanks啊
补充一点
errors=‘ignore’ 遇到坏的数据 会返回不做了
所以应该用
errors=‘coerce’把坏的数据填充为 NaT
【在 x***u 的大作中提到】 : 如果只是要忽略错误但是返回原值以待处理,可以用参数 errors=‘ignore’ : errors : {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’ : If ‘raise’, then invalid parsing will raise an exception : If ‘coerce’, then invalid parsing will be set as NaT : If ‘ignore’, then invalid parsing will return the input
|