繁体   English   中英

pandas group by with isin 语句返回索引 true/false

[英]pandas group by with isin statement return index true/false

我有以下 dataframe:

          balance
currency 
JPY       2342
USD       33245
BTC       23424
ETH       19080
CNY       89678

以下代码仅返回真假 2 个类别中 dataframe 的总和:

bal = df.groupby(~user_bal.index.isin(['BTC', 'ETH'])).sum()

而预期的 output 如下,其中 [JPY,USD,CNY] 已在一个名为 JPY 的指数下求和:

          balance
currency 
JPY       125265
BTC       23424
ETH       19080

任何帮助将不胜感激。

您可以先尝试where ,然后再尝试groupby + sum

groups=df.index.where(df.index.isin(['BTC', 'ETH']),'JPY')
df.groupby(groups).sum()

Output:

          balance
currency         
BTC         23424
ETH         19080
JPY        125265

详情
使用where + isin进行屏蔽和替换,以使用'JPY'更改不在列表中的值:

groups=df.index.where(df.index.isin(['BTC', 'ETH']),'JPY')
print(groups)
>>>Index(['JPY', 'JPY', 'BTC', 'ETH', 'JPY'], dtype='object', name='currency')

然后按groups并求和。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM