Pandas值大于或小于z的列的条件平均值

2024-09-27 23:28:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算列的条件平均值: 如果行元素的值大于等于0,则计算所有这些元素的平均值;如果为<;0,则计算这些元素的平均值并存储在avgGain和avgLoss中。在

输入:

ProfitLoss
    -8.000
    14.400
    13.150
     3.050
    -8.000
    -8.000
     3.425
     7.350
    -8.000
    -8.000
     0.000

输出:

^{pr2}$

所有这些计算都应该在一个语句中使用pandappy或aggregate函数。在

谢谢


Tags: 函数lt元素语句条件平均值aggregatepr2
1条回答
网友
1楼 · 发布于 2024-09-27 23:28:27

IIUC可以做到:

# Setup (for reproducibility)
import pandas as pd

data = [-8.000,
    14.400,
    13.150,
     3.050,
    -8.000,
    -8.000,
     3.425,
     7.350,
    -8.000,
    -8.000,
     0.000]
df = pd.DataFrame(data, columns=["ProfitLoss"])

# Calculate the respective means (vectorized)
avgGain = df[df['ProfitLoss'] > 0].mean().values[0]
avgLoss = df[df['ProfitLoss'] < 0].mean().values[0]

# Print outputs to console
print("avgGain:", avgGain)
print("avgLoss:", avgLoss)

输出:

^{pr2}$

如有需要

相关问题 更多 >

    热门问题