【发布时间】:2019-03-25 08:09:29
【问题描述】:
将过滤后的数组 (a) 替换为另一列的与过滤后的数组 (b) 相同。
In[1]import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set(font_scale=1.5)
import numpy as np
import datetime
from pylab import rcParams
rcParams['figure.figsize'] = 20, 10```
-
#definition of a
In[2] a = df.fldLastUpdatedDate[df.index[df.fldScheduleCreatedDt.notnull() &
df.fldLastUpdatedDate.isnull()]]
In[3] a
Out[3]917 NaT
932 NaT
933 NaT
934 NaT
938 NaT
..
69932 NaT
Name: fldLastUpdatedDate, Length: 20802, dtype: datetime64[ns]
-
#definition of b
In[4] b = df.combined[df.index[df.fldScheduleCreatedDt.notnull() &
df.fldLastUpdatedDate.isnull()]]
In[5] b
Out[5]917 2011-08-12 09:00:00
932 2011-08-09 09:00:00
933 2011-08-09 10:15:00
934 2011-08-04 13:00:00
938 2011-08-02 12:30:00
..
69932 2018-11-02 15:00:00
Name: combined, Length: 20802, dtype: datetime64[ns]
-
#replace a with b
In[5] df.fldLastUpdatedDate = df.fldLastUpdatedDate.replace(a,b)
-
#check a
In[6] a
Out[6]917 NaT
932 NaT
933 NaT
934 NaT
938 NaT
..
69932 NaT
Name: fldLastUpdatedDate, Length: 20802, dtype: datetime64[ns]
没有变化(也没有错误)。喜悦。
我考虑过的问题解决方案:
(1) 有没有可以用来指导我了解这里发生了什么的调试工具?
(2) 我是否在其 SOP 参数中使用.replace()?
(3) 是否有任何其他基于非循环的解决方案符合解决此问题的标准?
【问题讨论】:
标签: python-3.x pandas numpy datetime indexing