如何在条件中使用熊猫groupby.count()

pod100

我有一个df包含两栏的数据框,股票代码和交易结果。

我想创建一个新的数据框,其中包含三列-股票行情,交易数量,获利交易。

我已经使用groupbycount函数来获得交易数列,这很好用。

我的问题是第三栏Profitable Trades,其中交易结果> 0,但我还没有找到解决这种情况的方法。

创建DF(可以正常工作)

df = pd.DataFrame(
    {'Ticker': ['[BTC]','[ETH]','[LTC]','[BTC]','[ETH]',
              '[LTC]','[BTC]','[ETH]','[LTC]'],
     'Trade Results': [5,10,5,-5,-10,-5,5,10,5]}
)
股票代号 交易结果
比特币 5
ETH 10
LTC 5
比特币 -5
ETH -10
LTC -5
比特币 5
ETH 10
LTC 5

对股票行情进行分组并计数(正常工作)

df_Grouped = df.groupby(['Ticker']).count()
股票代号 数数
比特币 3
ETH 3
LTC 3

条件列(我的问题)

这是我无法弄清楚的部分,我的最新尝试在下面,但对有利润的列返回NaN。

df_Grouped['Profitable'] = df.groupby(['Trade Result'] > 0).count()

期望的输出

股票代号 数数 有利可图
比特币 3 2个
ETH 3 2个
LTC 3 2个
大卫·M

您可以这样做:

df_Grouped = df.groupby(['Ticker']).agg({'Trade Results': [('Count', 'count'), ('Profitable', lambda x: len(x[x>0]))]}).reset_index()

输出:

                 Count Profitable
0  BTC             3          2
1  ETH             3          2
2  LTC             3          2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章