我想寫一個檢查日期并回傳另一個日期的條件。
但numpy.where不斷將我的日期轉換為長整數。我環顧四周試圖找到解決方案,但我無法將其應用于我的情況。我對python有點陌生。
這是我的代碼:
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
我不明白我做錯了什么,是否有更好的方法來做我的條件陳述?
謝謝
uj5u.com熱心網友回復:
我不認為你需要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')
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429368.html
上一篇:如何將資料框中的列匯出到PythonPandas中左對齊的文本檔案?
下一篇:遍歷numpy陣列和向量的列
