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

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

Pandas:查找數(shù)據(jù)框中每個元素的上次編輯日期

Pandas:查找數(shù)據(jù)框中每個元素的上次編輯日期

拉風(fēng)的咖菲貓 2024-01-24 20:51:55
希望在下面正確地表達(dá)自己,因?yàn)檫@似乎是一個復(fù)雜的問題。我的部門定期在隨機(jī)時間為我們當(dāng)前的項(xiàng)目組合網(wǎng)站創(chuàng)建每日快照。下面,我過濾了整個表中所有項(xiàng)目 ID = 1 的快照。這里過濾是為了使其更容易理解,因?yàn)橛泻芏囗?xiàng)目。此外,我還減少了本示例的列數(shù)。df_表project_id  project_name  region  style   effect   representative lazy  timestamp1           PullPressure  EU      A-B-C   Pull     Martin         DCA   10/01/201           PullPressure  EU      A-B-C   Pull     Martin         DCA   09/05/201           PushPressure  EU      A-B-C   Push     Martin               08/20/201           PressurePush  EU      A-B-C   Push     Martin               04/06/201           PressurePush  US      A-B-C   Push     Johnsson             12/31/191           PressurePush  US      A-B-C   Push     Johnsson             10/15/19我的目標(biāo)是找出project_id 的任何列(或通常任何key_column)的最后一次更改發(fā)生的時間,即給定id 的每個單元格最后一次編輯的時間是什么時候?我的目標(biāo)是實(shí)現(xiàn)這樣的目標(biāo):df_表_新:project_id  project_name region       style        effect       representative  lazy        timestamp1           08/20/20     04/06/20     10/15/19     09/05/20     04/06/20        09/05/20    10/01/201           08/20/20     04/06/20     10/15/19     09/05/20     04/06/20        09/05/20    09/05/201           08/20/20     04/06/20     10/15/19     10/15/19     04/06/20        10/15/19    08/20/201           10/15/19     04/06/20     10/15/19     10/15/19     04/06/20        10/15/19    04/06/201           10/15/19     10/15/19     10/15/19     10/15/19     10/15/19        10/15/19    12/31/191           10/15/19     10/15/19     10/15/19     10/15/19     10/15/19        10/15/19    10/15/19如果有任何不清楚的地方,請告訴我!編輯:列中包含空值會導(dǎo)致 NaT 錯誤,如下所示:lazy09/05/2009/05/20NaTNaTNaTNaT然而,字段應(yīng)引用時間戳列中最早的可用時間戳(而不是 NaT),即 10/15/19。edit2:通過將相應(yīng)的元素添加到函數(shù)中來解決@jezrael的解決方案。非常感謝!
查看完整描述

1 回答

?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個贊

對由 生成的每一列使用GroupBy.transformwith?:GroupBy.lastIndex.difference

df['timestamp'] = pd.to_datetime(df['timestamp'], format='%m/%d/%y')


for c in df.columns.difference(['project_id','timestamp']):

? ? df[c] = df.groupby(['project_id',c], sort=False)['timestamp'].transform('last')

print (df)


? ?project_id project_name? ? ?region? ? ? style? ? ?effect representative? \

0? ? ? ? ? ?1? ?2020-09-05 2020-04-06 2019-10-15 2020-09-05? ? ?2020-04-06? ?

1? ? ? ? ? ?1? ?2020-09-05 2020-04-06 2019-10-15 2020-09-05? ? ?2020-04-06? ?

2? ? ? ? ? ?1? ?2020-08-20 2020-04-06 2019-10-15 2019-10-15? ? ?2020-04-06? ?

3? ? ? ? ? ?1? ?2019-10-15 2020-04-06 2019-10-15 2019-10-15? ? ?2020-04-06? ?

4? ? ? ? ? ?1? ?2019-10-15 2019-10-15 2019-10-15 2019-10-15? ? ?2019-10-15? ?

5? ? ? ? ? ?1? ?2019-10-15 2019-10-15 2019-10-15 2019-10-15? ? ?2019-10-15? ?


? ?timestamp??

0 2020-10-01??

1 2020-09-05??

2 2020-08-20??

3 2020-04-06??

4 2019-12-31??

如果需要原始格式添加Series.dt.strftime

df['timestamp'] = pd.to_datetime(df['timestamp'], format='%m/%d/%y')


for c in df.columns.difference(['project_id','timestamp']):

? ? df[c] = (df.groupby(['project_id',c], sort=False)['timestamp'].transform('last')

? ? ? ? ? ? ? ?.dt.strftime('%m/%d/%y'))

print (df)


? ?project_id project_name? ? region? ? ?style? ? effect representative? \

0? ? ? ? ? ?1? ? ?09/05/20? 04/06/20? 10/15/19? 09/05/20? ? ? ?04/06/20? ?

1? ? ? ? ? ?1? ? ?09/05/20? 04/06/20? 10/15/19? 09/05/20? ? ? ?04/06/20? ?

2? ? ? ? ? ?1? ? ?08/20/20? 04/06/20? 10/15/19? 10/15/19? ? ? ?04/06/20? ?

3? ? ? ? ? ?1? ? ?10/15/19? 04/06/20? 10/15/19? 10/15/19? ? ? ?04/06/20? ?

4? ? ? ? ? ?1? ? ?10/15/19? 10/15/19? 10/15/19? 10/15/19? ? ? ?10/15/19? ?

5? ? ? ? ? ?1? ? ?10/15/19? 10/15/19? 10/15/19? 10/15/19? ? ? ?10/15/19? ?


? ?timestamp??

0 2020-10-01??

1 2020-09-05??

2 2020-08-20??

3 2020-04-06??

4 2019-12-31??

5 2019-10-15??

編輯:fillna按最小時間戳添加:


df['timestamp'] = pd.to_datetime(df['timestamp'], format='%m/%d/%y')

min1 = df['timestamp'].min()


for c in df.columns.difference(['project_id','timestamp']):

? ? df[c] = df.groupby(['project_id',c], sort=False)['timestamp'].transform('last').fillna(min1)

print (df)

? ?project_id project_name? ? ?region? ? ? style? ? ?effect representative? \

0? ? ? ? ? ?1? ?2020-09-05 2020-04-06 2019-10-15 2020-09-05? ? ?2020-04-06? ?

1? ? ? ? ? ?1? ?2020-09-05 2020-04-06 2019-10-15 2020-09-05? ? ?2020-04-06? ?

2? ? ? ? ? ?1? ?2020-08-20 2020-04-06 2019-10-15 2019-10-15? ? ?2020-04-06? ?

3? ? ? ? ? ?1? ?2019-10-15 2020-04-06 2019-10-15 2019-10-15? ? ?2020-04-06? ?

4? ? ? ? ? ?1? ?2019-10-15 2019-10-15 2019-10-15 2019-10-15? ? ?2019-10-15? ?

5? ? ? ? ? ?1? ?2019-10-15 2019-10-15 2019-10-15 2019-10-15? ? ?2019-10-15? ?


? ? ? ? lazy? timestamp??

0 2020-09-05 2020-10-01??

1 2020-09-05 2020-09-05??

2 2019-10-15 2020-08-20??

3 2019-10-15 2020-04-06??

4 2019-10-15 2019-12-31??

5 2019-10-15 2019-10-15??


查看完整回答
反對 回復(fù) 2024-01-24
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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