You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas条件滚动计算:实现下行贝塔(Downside Beta)计算

Calculating Downside Beta in Pandas

Got it, let's walk through how to compute the Downside Beta and add it as a new column "C" to your DataFrame. The core logic is to only use rows where column A is negative, then calculate the covariance between A and B in that subset, divided by the variance of A in the same subset.

Step-by-Step Implementation

Here's the code with clear explanations:

import pandas as pd

# First, filter the data to only include rows where column A is negative
downside_subset = df[df['A'] < 0]

# Handle edge case: if there are no negative values in A, set Downside Beta to NaN
if downside_subset.empty:
    df['C'] = pd.NA
else:
    # Calculate covariance between A and B for the downside subset
    downside_cov = downside_subset['A'].cov(downside_subset['B'])
    # Calculate variance of A for the downside subset
    downside_var = downside_subset['A'].var()
    # Compute Downside Beta
    downside_beta = downside_cov / downside_var
    # Assign the value to the new column "C" (all rows get this single beta value)
    df['C'] = downside_beta

Key Notes

  • Filtering the Subset: We use df[df['A'] < 0] to isolate only the rows where A is negative—this is the "downside" data we care about for this metric.
  • Edge Case Handling: If there are no negative values in column A, we set column C to pd.NA to avoid division by zero or invalid calculations.
  • Covariance & Variance: Pandas' built-in .cov() and .var() methods handle the statistical calculations efficiently. By default, .var() uses sample variance (divides by n-1), which is standard for most financial metrics like beta.

内容的提问来源于stack exchange,提问作者CTXR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:05:04