将具有混合字符串的列转换为纪元日期熊猫数据框

时间:2020-09-19 15:20:48

标签: python pandas dataframe

我有一个数据框列,其值类似于

$none
1558044313727
$none
1558058614585
...

我尝试了以下查询,但事件errors='ignore'并未转换。

df['epoch_date'] = pd.to_datetime(df['epoch_date'], unit='ms')
ERROR: ValueError: non convertible value $none with the unit 'ms'

如何忽略$ none或将其转换为NaN值并全部保留日期时间值?

1 个答案:

答案 0 :(得分:1)

尝试使用errors = 'coerce'

df['epoch_date'] = pd.to_datetime(df['epoch_date'], unit='ms', errors = 'coerce')

这会将您的'$none'值(以及任何其他无效的解析)转换为NaT,与NaN类型等效。{p}

datetime64[ns]之所以失败,是因为它仅返回无效解析时的输入,因此最后,它试图将字符串放入datetime对象中,这显然是有原因的。