小编Dee*_*ace的帖子

绘制水平线(matplotlib)

我尝试运行代码:

fig, ax = plt.subplots()
ax.plot(x, y, color="g") 
ax.xaxis.set_major_locator(matplotlib.dates.YearLocator())
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Y'))
hlines=[40,50]
ax.hlines(hlines, 1, len(x), color='g')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我希望它能画出这样的东西: 在此输入图像描述 画图表没问题,可以,但是画水平线不行。

当我运行我的代码时,它会绘制:

在此输入图像描述

PS x 是这样创建的:日期到 matplotlib 日期

x.append(matplotlib.dates.date2num(datetime.strptime(date, '%Y%m%d')))
Run Code Online (Sandbox Code Playgroud)

python matplotlib

2
推荐指数
1
解决办法
6456
查看次数

检查类型是否为字典

如何检查变量是否是python字典?

for k,v in dict.items():
    if type(v)==dict:
        print('This is a dictionary')
Run Code Online (Sandbox Code Playgroud)

此代码不起作用

编辑:

解决了。类型(v)正在工作。我在字典中使用名称“dict”时犯了错误。

python dictionary

1
推荐指数
1
解决办法
7246
查看次数

使用 Pandas 迭代列表 VS

我有一个名为 reassembly 的大列表,其组织方式如下:

['HYDR', 30472.0, 'B'], ['HYDR', 30470.0, 'S'], ['HYDR', 30474.0, 'B'].....
Run Code Online (Sandbox Code Playgroud)

我的一段代码:

sum_buys = 0
sum_sells = 0
for deal in reassembly:
    ticker, vol, oper = deal[0], deal[1], deal[2]
    if oper == "B":
        sum_buys = sum_buys + vol
    elif oper == "S":
        sum_sells = sum_sells + vol
Run Code Online (Sandbox Code Playgroud)

名单非常大。从开始到结束运行大约需要 5 分钟。很长时间。

pandas 库可以帮助我更快地完成吗?我从未与它合作过。

我该怎么办?

  1. 将名为 reassembly 的列表转换为 pandas 数据框

  2. 使用 pandas 方法计算两个参数:sum_buys 和 sum_sells

请帮帮我!

python pandas

0
推荐指数
1
解决办法
34
查看次数

标签 统计

python ×3

dictionary ×1

matplotlib ×1

pandas ×1