第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何使用帶有計算多列的函數(shù)的pandas rolling.apply?

如何使用帶有計算多列的函數(shù)的pandas rolling.apply?

元芳怎么了 2021-11-23 20:04:22
我有一個帶有日期和 ID(已排序)的數(shù)據(jù)框。> date              id        newid (expected result)> 2019-01-01 10:00   1   20190101000001-A> 2019-01-01 11:00   1   20190101000002-A> 2019-01-01 12:00   1   20190101000003-A> 2019-01-01 19:00   2   20190101000001-A> 2019-01-02 09:00   2   20190102000001-A> 2019-01-02 10:00   2   20190102000002-A> 2019-01-05 15:00   3   20190103000001-Adef create_new_id(params):    if (previous_date != recent_date) or (previous_id != recent_id):        new_id = 'date000001-A'    if (previous_date == recent_date) and (previous_id == recent_id):        new_id = previous_new_id + 1# (change date000001-A to date000002-A)    return new_id作為示例數(shù)據(jù),我想通過創(chuàng)建一個條件來檢查以前的值來生成一個新的 id。我試著用這個df['newid ] = df.rolling(window=2).apply(create_new_id)但我不知道正確的使用方法。
查看完整描述

1 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

嘗試


df['newid'] = df['date'].dt.strftime('%Y%m%d')+(df.groupby([df['date'].dt.date,'id']).cumcount()+1).astype(str).str.zfill(6) + '-A'

print(df)


# print

                 date  id             newid

0 2019-01-01 10:00:00   1  20190101000001-A

1 2019-01-01 11:00:00   1  20190101000002-A

2 2019-01-01 12:00:00   1  20190101000003-A

3 2019-01-01 19:00:00   2  20190101000001-A

4 2019-01-02 09:00:00   2  20190102000001-A

5 2019-01-02 10:00:00   2  20190102000002-A

6 2019-01-05 15:00:00   3  20190105000001-A


查看完整回答
反對 回復 2021-11-23
  • 1 回答
  • 0 關注
  • 531 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號