要从具有NaT值的datetime64 [ns]列创建timedelta列?

时间:2020-07-07 11:27:40

标签: python pandas dataframe

我正在读取CSV文件。

df = pd.read_csv('xyz.csv',parse_dates=['last_time'])

dtype列中的last_tweeteddatetime64[ns]

该列目前仅包含1 datetime64[ns]个其余的NaT

df

     last_time
0      NaT
1      NaT
2      NaT
3      NaT
4      2020-07-07 15:53:26.798844

我要添加一个新列time_since

df['time_since'] = df[df['last_time'] - datetime.datetime.now()]

我通读了许多问题,但无法找出问题所在。

我收到以下错误:

回溯(最近通话最近): 在run_code中的文件“ /usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py”,行3331 exec(code_obj,self.user_global_ns,self.user_ns) 文件“”,第1行,位于 df ['trial'] = df [df ['last_time']-datetime.datetime.now()] 在 getitem 中的文件“ /home/xxx/.local/lib/python3.6/site-packages/pandas/core/frame.py”,第2806行 索引器= self.loc._get_listlike_indexer(键,轴= 1,raise_missing =真)[1] _get_listlike_indexer中的文件“ /home/xxx/.local/lib/python3.6/site-packages/pandas/core/indexing.py”,第1553行 键,索引器,o._get_axis_number(axis),raise_missing = raise_missing _validate_read_indexer中的文件“ /home/xxx/.local/lib/python3.6/site-packages/pandas/core/indexing.py”,行1640 引发KeyError(f“ [{key}中没有一个都在[{axis_name}]中”“) KeyError:“ [TimedeltaIndex([NaT,NaT,NaT,NaT,NaT,NaT,NaT,NaT,\ n'-1天+23:06:31.564892',NaT,NaT]都不存在,\ n dtype ='timedelta64 [ns]',freq = None)]位于[列]“

我在做什么错?我假设在计算中将忽略NaT,或者会得到一堆timedelta的{​​{1}}列。

1 个答案:

答案 0 :(得分:1)

删除df[],它通过一些遮罩用于boolean indexing

df['time_since'] = df['last_time'] - datetime.datetime.now()