如何分别填写NaT和NaN值

如何分别填写NaT和NaN值

本文介绍了如何分别填写NaT和NaN值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据框同时包含NaT和NaN值

My dataframe contains both NaT and NaN values

    Date/Time_entry      Entry      Date/Time_exit       Exit
0   2015-11-11 10:52:00  19.9900    2015-11-11 11:30:00  20.350
1   2015-11-11 11:36:00  20.4300    2015-11-11 11:38:00  20.565
2   2015-11-11 11:44:00  21.0000    NaT                  NaN
3   2009-04-20 10:28:00  13.7788    2009-04-20 10:46:00  13.700

我想用日期填充NaT,用数字填充NaN。 Fillna(4)方法将NaT和NaN都替换为4。是否可以通过某种方式区分NaT和NaN?

I want to fill NaT with dates and NaN with numbers. Fillna(4) method replaces both NaT and NaN with 4. Is it possible to differentiate between NaT and NaN somehow?

我当前的解决方法是df [column] .fillna ()

My current workaround is to df[column].fillna()

推荐答案

由于NaT与日期时间列有关,因此您可以在应用填充操作时排除它们。

Since NaTs pertain to datetime columns, you can exclude them when applying your filling operation.

u = df.select_dtypes(exclude=['datetime'])
df[u.columns] = u.fillna(4)
df

      Date/Time_entry    Entry      Date/Time_exit    Exit
0 2015-11-11 10:52:00  19.9900 2015-11-11 11:30:00  20.350
1 2015-11-11 11:36:00  20.4300 2015-11-11 11:38:00  20.565
2 2015-11-11 11:44:00  21.0000                 NaT   4.000
3 2009-04-20 10:28:00  13.7788 2009-04-20 10:46:00  13.700




$ b同样,仅填充NaT值,在上面的代码中将 exclude更改为 include。


Similarly, to fill NaT values only, change "exclude" to "include" in the code above.

u = df.select_dtypes(include=['datetime'])
df[u.columns] = u.fillna(pd.to_datetime('today'))
df

      Date/Time_entry    Entry             Date/Time_exit    Exit
0 2015-11-11 10:52:00  19.9900 2015-11-11 11:30:00.000000  20.350
1 2015-11-11 11:36:00  20.4300 2015-11-11 11:38:00.000000  20.565
2 2015-11-11 11:44:00  21.0000 2019-02-17 16:11:09.407466   4.000
3 2009-04-20 10:28:00  13.7788 2009-04-20 10:46:00.000000  13.700

这篇关于如何分别填写NaT和NaN值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 02:54