我在數據框中有一個'發佈日期'列,格式爲'2017-03-01'
。該類型是<datetime64>[ns]
。如果在'2017-03-31'到'2017-03-31'之後,並且所有其他值保持不變,我想要更改該值。有條件替換日期時間 - python
當我輸入df['Posting Date']>'2017-03-31'
時,它可以正確顯示條件滿足的所有行。所以我猜日期過濾功能起作用。
然而,當我用numpy.where
寫的條件,因爲這:
df['Posting Date'] = np.where(df['Posting Date']>'2017-03-31','2017-03-31,'df['Posting Date'])
它incurrs一個invalid type promotion
錯誤。我也嘗試過df.loc
和相同的錯誤消息。
df.loc[df['Posting Date']>'2017-03-31','Posting Date']='2017-03-31'
ValueError: invalid literal for int() with base 10: '2017-03-31'
我不知道爲何出現錯誤。我如何正確地更換日期?無論哪種方法工作都很好。
我認爲你有一個剪切粘貼錯誤。 ''2017-03-31,'df ['發佈日期']'是語法錯誤。 (推測這個逗號應該在引號外面。)如果這實際上是正確的numpy語法,我的道歉。 –
我還沒試過,但可以試試。 df ['Posting Date']。clip(upper = pd.Timestamp('2017-03-31')) – piRSquared