我正在努力在數據框中構建一個附加列,該列是一個時間段內兩行的總和。這里附上一張圖片:我想創建一個新列,它是每個 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')
添加回答
舉報
0/150
提交
取消