有一个dataframe里面有一列当日涨停的股票代码,一列对应的交易日期,一列当日累计异常收益,统计不同涨停板数量下的数量下的累计异常收益
时间: 2024-12-19 19:24:51 浏览: 6
使用Python向DataFrame中指定位置添加一列或多列的方法
4星 · 用户满意度95%
要统计DataFrame中基于不同涨停板数量下的累计异常收益分布,你可以按照以下步骤操作:
1. 首先,你需要对数据进行预处理,确保“当日涨停”这一列的数据只包含0或1,其中1表示该股票当天涨停。
2. 使用`groupby`函数按“涨停板数量”分组,这通常意味着计算每个涨停次数下有多少条记录。例如,你可以创建一个新的列`num_stocks`,其值为涨停的天数。
```python
df['num_stocks'] = df['当日涨停'].cumsum()
groups = df.groupby('num_stocks')
```
3. 对于每组,计算累计异常收益的总和。如果“当日累计异常收益”已经是一个累计值,可以直接相加;如果不是,需要将它们累加起来。
4. 结果可以保存在一个新的DataFrame或者Series中,展示每种涨停板数量及其对应的累计异常收益。
```python
result = groups['当日累计异常收益'].agg(['count', 'sum'])
result.columns = ['股票总数', '累计异常收益']
```
5. 如果你想得到每个涨停板数量的频率或者百分比,可以再添加计算频率的代码:
```python
result['频率'] = result['股票总数'] / result['股票总数'].sum()
```
阅读全文