data.columns = [symbol]
时间: 2023-12-27 10:01:53 浏览: 123
data.columns = [symbol] 表示将数据集中的列名称更改为变量 symbol 的值。具体来说,如果 symbol 的值为 "name",那么 data.columns = [symbol] 就相当于 data.columns = ["name"],即将数据集中的列名称更改为 "name"。
请注意,这里的 symbol 应该是一个字符串,如果它是一个变量,那么应该在它的前面加上一个美元符号 $,即 data.columns = [$symbol]。
希望这能帮到你!
相关问题
# 统计每年的平均评分 data = pd.concat([dates_year, dates_ratings], axis=1) data.columns = ['year', 'rating'] data = data.groupby('year').mean().reset_index() # 绘制折线图 line = ( Line() .add_xaxis(data['year'].tolist()) .add_yaxis("电影评分", data['rating'].tolist()) .set_global_opts( title_opts=opts.TitleOpts(title="电影评分趋势图"), tooltip_opts=opts.TooltipOpts(trigger="axis"), xaxis_opts=opts.AxisOpts(name='上映年份',type_="category"), yaxis_opts=opts.AxisOpts(name='电影评分',type_="value"), datazoom_opts=[opts.DataZoomOpts(is_show=True,range_start=0,range_end=20,orient='horizontal')], # 添加区域缩放 ) # 缩放区域空值条所放的位置 ) line.render_notebook() 将其改为年份评分人数散点图
可以使用散点图来展示每年的评分和评分人数的关系,代码如下:
```python
# 统计每年的平均评分和评分人数
data = pd.concat([dates_year, dates_ratings, dates_votes], axis=1)
data.columns = ['year', 'rating', 'votes']
data = data.groupby('year').agg({'rating': 'mean', 'votes': 'sum'}).reset_index()
# 绘制散点图
scatter = (
Scatter()
.add_xaxis(data['year'].tolist())
.add_yaxis("电影评分", data['rating'].tolist(), symbol_size=10, label_opts=opts.LabelOpts(is_show=False))
.add_yaxis("评分人数", data['votes'].tolist(), symbol_size=10, label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="电影年份评分人数散点图"),
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
xaxis_opts=opts.AxisOpts(name='上映年份', type_="category"),
yaxis_opts=[
opts.AxisOpts(name='电影评分', type_="value"),
opts.AxisOpts(name='评分人数', type_="value", position="right")
],
datazoom_opts=[opts.DataZoomOpts(is_show=True, range_start=0, range_end=20, orient='horizontal')]
)
)
scatter.render_notebook()
```
这样就可以得到一张电影年份评分人数散点图,其中横轴表示年份,左纵轴表示电影评分,右纵轴表示评分人数。
from datetime import datetime import backtrader as bt # 升级到最新版 import matplotlib.pyplot as plt # 由于 Backtrader 的问题,此处要求 pip install matplotlib==3.2.2 import akshare as ak # 升级到最新版 import pandas as pd plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 利用 AKShare 获取股票的后复权数据,这里只获取前 6 列 stock_hfq_df = ak.stock_zh_a_hist(symbol="601916", adjust="hfq").iloc[:, :6] # 处理字段命名,以符合 Backtrader 的要求 stock_hfq_df.columns = [ 'date', 'open', 'close', 'high', 'low', 'volume', ] # 把 date 作为日期索引,以符合 Backtrader 的要求 stock_hfq_df.index = pd.to_datetime(stock_hfq_df['date']) 如何画出数据源的K线图,标示(20,50,200)MA线的代码是
以下是画出数据源的K线图并标示(20,50,200)MA线的代码:
```
# 定义 Backtrader 中的数据源
data = bt.feeds.PandasData(dataname=stock_hfq_df)
# 初始化 Cerebro 对象
cerebro = bt.Cerebro()
# 添加数据源
cerebro.adddata(data)
# 添加 MA 指标
cerebro.addindicator(bt.indicators.SMA, period=20)
cerebro.addindicator(bt.indicators.SMA, period=50)
cerebro.addindicator(bt.indicators.SMA, period=200)
# 添加 K线图和 MA 线图
cerebro.addobserver(bt.observers.Broker)
cerebro.addobserver(bt.observers.Trades)
cerebro.addobserver(bt.observers.DrawDown)
cerebro.addobserver(bt.observers.Value)
cerebro.addobserver(bt.observers.TimeReturn)
cerebro.addanalyzer(bt.analyzers.SharpeRatio)
cerebro.addanalyzer(bt.analyzers.Returns)
cerebro.addanalyzer(bt.analyzers.DrawDown)
cerebro.addanalyzer(bt.analyzers.Transactions)
cerebro.addanalyzer(bt.analyzers.SQN)
cerebro.addanalyzer(bt.analyzers.AnnualReturn)
cerebro.addanalyzer(bt.analyzers.VWR)
# 运行回测
cerebro.run()
# 画出 K 线图和 MA 线图
cerebro.plot(style='candlestick', ma=[20, 50, 200])
```
阅读全文