【发布时间】:2019-01-20 20:37:35
【问题描述】:
我想使用 groupby 和 mean 计算每个 ID 的平均值。但是,我只需要Date 在年份2016-01-01 和2017-12-31 之间的行。
d = {'ID': ['STCK123', 'STCK123', 'STCK123'], 'Amount': [250, 400, 350],
'Date': ['2016-01-20', '2017-09-25', '2018-05-15']}
data = pd.DataFrame(data=d)
data = data[['ID', 'Amount', 'Date']]
data['Date'] = pd.to_datetime(data['Date'])
这给出了以下df:
ID Amount Date
STCK123 250 2016-01-20
STCK123 400 2017-09-25
STCK123 350 2018-05-15
当我使用时:
data.groupby(['ID'])['Amount'].agg('mean')
它将所有行都考虑在内,因此平均值为333.3。如何排除 Date 为 2018 的行(平均值为 (250+400)/2=325)?
【问题讨论】:
标签: python pandas dataframe group-by