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

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

按數(shù)據(jù)幀分組,按值小于一秒 - pandas

按數(shù)據(jù)幀分組,按值小于一秒 - pandas

qq_笑_17 2021-09-11 20:18:06
假設我有一個熊貓數(shù)據(jù)框,如下所示:>>> df=pd.DataFrame({'dt':pd.to_datetime(['2018-12-10 16:35:34.246','2018-12-10 16:36:34.243','2018-12-10 16:38:34.216','2018-12-10 16:42:34.123']),'value':[1,2,3,4]})>>> df                       dt  value0 2018-12-10 16:35:34.246      11 2018-12-10 16:36:34.243      22 2018-12-10 16:38:34.216      33 2018-12-10 16:42:34.123      4>>> 我想按'dt'列對這個數(shù)據(jù)框進行分組,但我想以一種方式對它進行分組,它認為小于一秒不同的值是相同的,在對那些分組后,我想'value'根據(jù)每個組總結該列,并且我希望數(shù)據(jù)幀兩個保持相同的長度,因此小于一秒的差異值將都是重復值,到目前為止我嘗試過:>>> df.groupby('dt',as_index=False)['value'].sum()                       dt  value0 2018-12-10 16:35:34.246      11 2018-12-10 16:36:34.243      22 2018-12-10 16:38:34.216      33 2018-12-10 16:42:34.123      4>>> 但是如您所見,數(shù)據(jù)框沒有更改,因為它按等效'dt'列值進行分組。我想要的輸出是:                       dt  value0 2018-12-10 16:35:34.246      31 2018-12-10 16:36:34.243      32 2018-12-10 16:38:34.216      33 2018-12-10 16:42:34.123      4
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

蠻力解決方案是取您的datetime系列和每個datetime值之間的絕對差異,然后與閾值進行比較:


# data from @StephenCowley


threshold = pd.Timedelta(seconds=1)


df['val'] = [df.loc[(df['dt'] - t).abs() < threshold, 'value'].sum()

             for t in df['dt']]


print(df)


                       dt  value  val

0 2018-12-10 16:35:34.246      1    3

1 2018-12-10 16:35:34.243      2    3

2 2018-12-10 16:38:34.216      3    3

3 2018-12-10 16:42:34.123      4    4


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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