我有如下的DataFrame:
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})我需要计算一下:
的协议数量
我需要的结果如下:

发布于 2020-12-23 14:34:59
我们可以做过滤然后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发布于 2020-12-23 14:38:57
你可以试试这个-
import pandas as pd
df = pd.DataFrame({"ID" : ["1", "2", "2", "1", "3"],
"currency" : ["GBP", "GBP", "GBP", "CHF", "EUR"],
"amount" : [100, 200, 300, 400, 500]})
>>> pd.pivot_table(df.loc[df.currency=='GBP'],index=["ID"],aggfunc={'currency':'count','amount':'sum'}).reindex(df.ID.unique()).reset_index()
ID amount currency
1 100.0 1.0
2 500.0 2.0
3 NaN NaNhttps://stackoverflow.com/questions/65425980
复制相似问题