【发布时间】:2023-01-23 17:44:30
【问题描述】:
我的第一列是“年”。我的第二列是“银行”。我的最后一列是“价值”。 我想为每个“银行”获取 year=2003 的 VALUE 总和,并将其显示在新列中。 即如果我的起始数据框可以用以下代码表示:
df = pd.DataFrame({'year' : [2001, 2002, 2003, 2001, 2002, 2003, 2001, 2002, 2003, 2001, 2002, 2003],
'bank' : ['sbi', 'sbi', 'sbi', 'sbi', 'sbi', 'sbi', 'icici', 'icici', 'icici', 'icici', 'icici', 'icici'],
'amt' : [1000, 2000, 3000, 4000, 5000, 6000,1,2,3,4,5,6]
})
那么最终的输出可以用下面的代码来表示:
df = pd.DataFrame({'year' : [2001, 2002, 2003, 2001, 2002, 2003, 2001, 2002, 2003, 2001, 2002, 2003],
'bank' : ['sbi', 'sbi', 'sbi', 'sbi', 'sbi', 'sbi', 'icici', 'icici', 'icici', 'icici', 'icici', 'icici'],
'amt' : [1000, 2000, 3000, 4000, 5000, 6000,1,2,3,4,5,6],
'amt_2003': [9000, 9000, 9000, 9000, 9000, 9000, 9, 9, 9, 9, 9, 9]
})
即 - 对于“sbi”,“year”=2003 中的总“value”为 3000+6000=9000,它显示在“sbi”的所有行中。同样,我对所有行的“icici”都得到 9。
使用 groupby('bank') 语句后,我无法使用条件总和。
【问题讨论】:
标签: python python-3.x pandas jupyter-notebook data-science