我想写一个条件,检查一个日期并返回另一个日期
但是numpy.where
一直在把我的日期转换成一个长整数。我四处寻找解决方案,但我无法将其应用于我的情况。我对蟒蛇有点陌生
这是我的代码:
df = {'my_date':['1900-01-01','2021-10-01','2021-08-04']}
df = pd.DataFrame(df)
df['new_date'] = np.where(pd.to_datetime(df.my_date) > pd.to_datetime('2022-01-01'),pd.to_datetime('1900-01-01'),pd.to_datetime(df.my_date))
df
my_date new_date
0 1900-01-01 -2208988800000000000
1 2021-10-01 1633046400000000000
2 2021-08-04 1628035200000000000
我不明白我做错了什么,如果有更好的方法来陈述我的病情?
感谢
我认为这里不需要np.where
,也不需要这么多pd.to_datetime
调用。
df['my_date'] = pd.to_datetime(df['my_date'])
df[df['my_date'] > '2022-01-01'] = '1900-01-01'
如果你想把它添加到一个新的列中,使用这个:
df['new_column'] = df['my_date'].where(~(df['my_date'] > '2022-01-01'), '1900-01-01')