Python Pandas to_datetime不会忽略已转换的日期
因此,我的timestamp列混合了历元(s)和毫秒(ms)时间。设置Python Pandas to_datetime不会忽略已转换的日期,python,pandas,Python,Pandas,因此,我的timestamp列混合了历元(s)和毫秒(ms)时间。设置pd.to_datetime(unit='s',errors='ignore')首先将此设置为。它忽略了“ms”类型的时间戳 但是当我运行df['timestamp']=pd.to_datetime(df['timestamp'],unit='ms',errors='ignore')my将变为NaT,但my将正确转换。为什么函数不忽略已转换的时间戳 为什么会这样?是否有一种方法可以使用内置的?我当前的解决方案对每一行进行迭代,
pd.to_datetime(unit='s',errors='ignore')
首先将此设置为。它忽略了“ms”类型的时间戳
但是当我运行df['timestamp']=pd.to_datetime(df['timestamp'],unit='ms',errors='ignore')
my将变为NaT,但my将正确转换。为什么函数不忽略已转换的时间戳
为什么会这样?是否有一种方法可以使用内置的?我当前的解决方案对每一行进行迭代,以检查时间戳的长度是否大于10,如果将其减少到10。之后我就开始约会了
我的数据集对于当前的解决方案来说太大了,因为它需要很长的时间
编辑
时间戳列将如下所示
1541760294
1541746328
1541723516
1543826478000
1543804455000
1541741097这是一个快速破解,但您可以使用类型检查给出的索引来转换第一次通过时未获得的索引:
idx = [df['timestamp'].apply(lambda x: type(x)!=datetime.datetime)]
df['timestamp'][idx] = pd.to_datetime(df['timestamp'], unit='ms', errors='ignore')
我不完全确定数据类型是什么,但我猜它应该是datetime.datetime…欢迎使用。在你的问题中最好使用文字而不是图片。只是想把我的问题弄清楚。下一次就可以了是的,你可能需要设置一个不同的类型“datetime.datetime”,如果你的问题中包含一个虚拟数据集,我们就可以运行代码并回答这个问题,更容易地编辑我的帖子以包含一个虚拟时间戳列