首页 > 解决方案 > 基于 Python Pandas 中 DataFrame 中的特征的计算?

问题描述

我有如下数据框:

df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
                    "currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
                    "amount" : [100, 200, 300, 400, 500]})

我需要计算:

  1. New1 = 使用英镑货币的协议数量
  2. New2 = 与英镑货币的协议金额

我需要如下结果:

在此处输入图像描述

标签: pythonpandasdataframeaggregation

解决方案


我们可以过滤groupby然后reindex

out = df.loc[df.currency=='GBP'].groupby(['ID']).amount.agg(['count','sum']).reindex(df.ID.unique())
Out[210]: 
    count    sum
ID              
1     1.0  100.0
2     2.0  500.0
3     NaN    NaN

推荐阅读