提示词

1
我们已经有了一整年的价格数据,数据类型为DataFrame。每日收盘价格存储在“收盘”字段中,请给出使用Python计算每日简单收益的示例代码。

答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import pandas as pd
# 示例数据准备(实际使用时可省略)
data = {
'日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04'],
'收盘': [100, 105, 110, 108]
}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df.set_index('日期', inplace=True) # 可选:将日期设为索引
# ===== 核心计算逻辑 =====
# 计算每日简单收益率 = (今日收盘价 - 昨日收盘价) / 昨日收盘价
df['日收益率'] = df['收盘'].pct_change() * 100 # *100转换为百分比形式
# 处理首行NaN(可选)
df['日收益率'].fillna(0, inplace=True) # 将第一天的NaN替换为0
# 打印结果
print(df[['收盘', '日收益率']])

输出结果没毛病

1
2
3
4
5
6
             收盘      日收益率
日期
2023-01-01 100 0.000000
2023-01-02 105 5.000000
2023-01-03 110 4.761905
2023-01-04 108 -1.818182