亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Numpy 在哪里將時間戳/日期時間更改為整數

Numpy 在哪里將時間戳/日期時間更改為整數

一只名叫tom的貓 2021-06-11 18:46:34
與其說是一個問題,不如說是讓我感到困惑的東西。我有一列日期,看起來像這樣:0              NaT1       1996-04-012       2000-03-013              NaT4              NaT5              NaT6              NaT7              NaT8              NaT我想將它的 NaT 轉換為靜態值。(假設我將熊貓導入為 pd,將 numpy 導入為 np)。如果我做:mydata['mynewdate'] = mydata.mydate.replace(    np.NaN, pd.datetime(1994,6,30,0,0))一切都很好,我得到:0       1994-06-301       1996-04-012       2000-03-013       1994-06-304       1994-06-305       1994-06-306       1994-06-307       1994-06-308       1994-06-30但如果我這樣做:mydata['mynewdate'] = np.where(    mydata['mydate'].isnull(), pd.datetime(1994,6,30,0,0),mydata['mydate'])我得到:0        1994-06-30 00:00:001         8283168000000000002         9518688000000000003        1994-06-30 00:00:004        1994-06-30 00:00:005        1994-06-30 00:00:006        1994-06-30 00:00:007        1994-06-30 00:00:008        1994-06-30 00:00:00此操作將原始的非空日期轉換為整數。我認為可能存在數據類型的混淆,所以我這樣做了:mydata['mynewdate'] = np.where(    mydata['mydate'].isnull(), pd.datetime(1994,6,30,0,0),pd.to_datetime(mydata['mydate']))并且仍然得到:0        1994-06-30 00:00:001         8283168000000000002         9518688000000000003        1994-06-30 00:00:004        1994-06-30 00:00:005        1994-06-30 00:00:006        1994-06-30 00:00:007        1994-06-30 00:00:008        1994-06-30 00:00:00請注意(不要問):是的,我有一個更好的解決方案來替換空值。這個問題不是關于替換空值(正如標題所表明的那樣),而是關于 numpy where 處理日期的方式。我問是因為我將有更復雜的條件來選擇將來要替換的日期,并認為 numpy 在哪里可以完成這項工作。有任何想法嗎?
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

這是由于 Numpy's datetime64、 Pandas'Timestamp和/或datetime.datetime. 我通過numpy.datetime64從一開始就將替換值設置為 a來修復它。


static_date = np.datetime64('1994-06-30')

# static_date = np.datetime64(pd.datetime(1994, 6, 30))


mydata.assign(

    mynewdate=np.where(

        mydata.mydate.isnull(),

        static_date,

        mydata.mydate

    )

)


      mydate  mynewdate

0        NaT 1994-06-30

1 1996-04-01 1996-04-01

2 2000-03-01 2000-03-01

3        NaT 1994-06-30

4        NaT 1994-06-30

5        NaT 1994-06-30

6        NaT 1994-06-30

7        NaT 1994-06-30

8        NaT 1994-06-30


查看完整回答
反對 回復 2021-06-22
  • 2 回答
  • 0 關注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號