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

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

創建兩行之和的新列,但每兩行重復一次

創建兩行之和的新列,但每兩行重復一次

MYYA 2023-03-22 16:47:39
我正在努力在數據框中構建一個附加列,該列是一個時間段內兩行的總和。這里附上一張圖片:我想創建一個新列,它是每個 TimePeriodId 的“BillType”列中“IN”和“SA”的生命總和。這樣,我將為單個 TimePeriodId 設置一個“總生命數”條目。我已經瀏覽了很多文檔,但無法弄清楚在這種情況下我會怎么做。代碼示例:sa = pd.read_sql(sa_q1, sql_conn)#convert TimePeriodId to string valuessa['TimePeriodId'] = sa['TimePeriodId'].astype(str)sa = sa.loc[(sa['BillType'] =='SA') | (sa['BillType']=='IN')]#.drop(['BillType'], axis = 1)sa.head(10).to_dict()#the last line returns the following:{'TimePeriodId': {1: '201811',  2: '201811',  4: '201812',  5: '201812',  9: '201901',  11: '201901',  13: '201902',  14: '201902',  17: '201903',  18: '201903'}, 'BillType': {1: 'IN',  2: 'SA',  4: 'IN',  5: 'SA',  9: 'SA',  11: 'IN',  13: 'IN',  14: 'SA',  17: 'IN',  18: 'SA'}, 'Lives': {1: 1067,  2: 288028,  4: 1058,  5: 287501,  9: 293560,  11: 1068,  13: 1089,  14: 278850,  17: 1076,  18: 276961}}任何幫助,將不勝感激!
查看完整描述

1 回答

?
繁花如伊

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

您可以嘗試使用pandas.DataFrame.groupby()方法來計算每個時間段的生命總和。之后,您可以sa使用方法通過計算列豐富數據框pandas.DataFrame.transform()。

>>>?sa['LivesTotal']?=?sa.groupby('TimePeriodId').Lives.transform('sum')


查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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