根据”数据1008.xlsx ”1.编写程序求日收益,并存入变量 2.编写程序分别求每支股票的日收益变量从2015年1月6日到2021年7月7日的最大子数组。将结果保存到变量 3.利用matplotlib绘制每只股票原始价格的图线(注意:不是日收益曲线,只需画原始数据曲线)
时间: 2024-09-19 09:12:08 浏览: 34
首先,为了完成这些任务,你需要使用Python的数据分析库pandas来处理Excel文件、计算日收益率以及操作数据,以及matplotlib库来绘制图形。以下是一个简化的示例步骤:
1. **读取Excel文件并计算日收益率**
```python
import pandas as pd
# 读取数据
df = pd.read_excel('data1008.xlsx')
# 假设'Close'列代表收盘价,我们可以假设每日收益率是前一天收盘价除以今天的收盘价减一
df['Daily_Return'] = df['Close'].pct_change()
# 将计算出的日收益率存入变量daily_returns
daily_returns = df['Daily_Return']
```
2. **找到最大子数组**(这里假设我们需要找到连续最大正收益)
```python
def max_subarray(arr):
max_len = 0
start = 0
curr_sum = 0
for i in range(len(arr)):
curr_sum += arr[i]
if curr_sum > 0:
max_len = max(max_len, i - start + 1)
else:
curr_sum = 0
start = i + 1
return max_len
max_lengths = [max_subarray(df[df.index >= '2015-01-06'][stock]['Daily_Return']) for stock in df.columns if 'Stock' in stock]
```
3. **绘制原始价格图线**
```python
import matplotlib.pyplot as plt
# 只画原始价格曲线
plt.figure(figsize=(10, 6))
for stock, data in df.groupby(level=0):
plt.plot(data['Date'], data['Close'], label=stock)
plt.title('Original Stock Prices')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()
```
阅读全文