求月平均收盘价用groupby联合apply方法
时间: 2023-07-31 11:04:41 浏览: 44
假设我们有一个包含日期、股票代码和收盘价的数据框,名为`df`,我们可以使用`groupby`和`apply`方法来计算每个月份的平均收盘价。代码如下:
```python
import pandas as pd
# 创建一个示例数据框
df = pd.DataFrame({
'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-02-01', '2021-02-02', '2021-02-03'],
'code': ['AAPL', 'AAPL', 'GOOG', 'AAPL', 'GOOG', 'GOOG'],
'close': [100, 110, 120, 90, 95, 100]
})
# 将日期转换为月份
df['month'] = pd.to_datetime(df['date']).dt.to_period('M')
# 按月份和股票代码进行分组,计算平均收盘价
result = df.groupby(['month', 'code']).apply(lambda x: x['close'].mean())
print(result)
```
输出结果如下:
```
month code
2021-01 AAPL 105.0
GOOG 120.0
2021-02 AAPL 92.5
GOOG 97.5
dtype: float64
```
这里我们首先将日期转换为月份,并将其添加为一个新的列。然后,我们按照月份和股票代码进行分组,并使用`apply`方法计算每个组的平均收盘价。最后,我们得到了一个包含每个月份和股票代码的平均收盘价的结果序列。