有一个dataframe其中有两列,一列是股票代码一列是对应交易日,在另外一个列表中一列是股票代码一列是对应交易日还有一列还有一列当日异常收益,根据第一个dataframe中的列表的代码与对应交易日筛选出第二个列表中对应的行并计算这些行的当日异常收益的平均数
时间: 2024-12-17 22:53:14 浏览: 12
使用Python向DataFrame中指定位置添加一列或多列的方法
4星 · 用户满意度95%
假设你有两个Pandas DataFrame,分别叫做`df1`和`df2`,其中`df1`包含股票代码(比如`stock_code`)和交易日期(`trade_date`),而`df2`包含了股票代码、交易日期以及异常收益(`abnormal_return`)。你可以通过以下步骤来完成这个任务:
1. 首先,你需要找出`df1`和`df2`中共享的股票代码和交易日期。这可以通过`merge()`函数实现,设置`on=['stock_code', 'trade_date']`来依据这两个列进行匹配:
```python
merged_df = pd.merge(df1, df2, on=['stock_code', 'trade_date'], how='inner')
```
这里`how='inner'`确保只保留两个DataFrame中都存在的记录。
2. 然后,从`merged_df`中选择特定的列,并计算每日异常收益的平均值:
```python
avg_abnormal_returns = merged_df['abnormal_return'].mean()
```
上面的代码中,我们直接对`abnormal_return`列求平均,如果`df2`中有多个异常收益对应相同的代码和日期,平均值就是所有值的算术平均。
阅读全文