基于Python数据框日期时间的if和else条件

我有一个数据时间数据框。我想将它与参考日期进行比较,并指定before它小于或after大于。
我的代码:

df = pd.DataFrame({'A':np.arange(1.0,9.0)},index=pd.date_range(start='2020-05-04 08:00:00', freq='1d', periods=8))
df=     
                       A
2020-05-04 08:00:00  1.0
2020-05-05 08:00:00  2.0
2020-05-06 08:00:00  3.0
2020-05-07 08:00:00  4.0
2020-05-08 08:00:00  5.0
2020-05-09 08:00:00  6.0
2020-05-10 08:00:00  7.0
2020-05-11 08:00:00  8.0

ref_date = '2020-05-08'

预期答案

df=     
                       A    Condi.
2020-05-04 08:00:00  1.0    Before
2020-05-05 08:00:00  2.0    Before
2020-05-06 08:00:00  3.0    Before
2020-05-07 08:00:00  4.0    Before
2020-05-08 08:00:00  5.0    After
2020-05-09 08:00:00  6.0    After
2020-05-10 08:00:00  7.0    After
2020-05-11 08:00:00  8.0    After

我的解决方案:

df['Cond.'] = = ['After' if df.index>=(ref_date)=='True' else 'Before cleaning']

现在回答

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

回答

ref_date = "2020-05-08"

df["Cond"] = np.where(df.index < ref_date, "Before", "After")
print(df)

印刷:

ref_date = "2020-05-08"

df["Cond"] = np.where(df.index < ref_date, "Before", "After")
print(df)


以上是基于Python数据框日期时间的if和else条件的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>