任何有关此问题的帮助将不胜感激.
所以基本上我想对我的SQL数据库运行查询并将返回的数据存储为Pandas数据结构.
我附加了查询代码.
我正在阅读关于Pandas的文档,但是我有问题确定我的查询的返回类型.
我试图打印查询结果,但它没有提供任何有用的信息.
谢谢!!!!
from sqlalchemy import create_engine
engine2 = create_engine('mysql://THE DATABASE I AM ACCESSING')
connection2 = engine2.connect()
dataid = 1022
resoverall = connection2.execute("
SELECT
sum(BLABLA) AS BLA,
sum(BLABLABLA2) AS BLABLABLA2,
sum(SOME_INT) AS SOME_INT,
sum(SOME_INT2) AS SOME_INT2,
100*sum(SOME_INT2)/sum(SOME_INT) AS ctr,
sum(SOME_INT2)/sum(SOME_INT) AS cpc
FROM daily_report_cooked
WHERE campaign_id = '%s'", %dataid)
Run Code Online (Sandbox Code Playgroud)
所以我想知道我的变量"resoverall"的格式/数据类型是什么,以及如何使用PANDAS数据结构.
我试图绘制日期信息.我有一个日期列表,格式为"01/02/1991".
我通过执行以下操作转换它们:
x = parser.parse(date).strftime('%Y%m%d'))
Run Code Online (Sandbox Code Playgroud)
这使 19910102
然后我尝试使用num2date
import matplotlib.dates as dates
new_x = dates.num2date(x)
Run Code Online (Sandbox Code Playgroud)
绘图:
plt.plot_date(new_x, other_data, fmt="bo", tz=None, xdate=True)
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误.它说"ValueError:年份超出范围".有解决方案吗
bar和之间的差异hist由于在一些数据pandas.Series,rv,之间是有差异
hist直接调用数据绘图
计算直方图结果(with numpy.histogram)然后用bar
%matplotlib inline
import numpy as np
import pandas as pd
import scipy.stats as stats
import matplotlib
matplotlib.rcParams['figure.figsize'] = (12.0, 8.0)
matplotlib.style.use('ggplot')
# Setup size and distribution
size = 50000
distribution = stats.norm()
# Create random data
rv = pd.Series(distribution.rvs(size=size))
# Get sane start and end points of distribution
start = distribution.ppf(0.01)
end = distribution.ppf(0.99)
# Build PDF and turn into pandas Series
x = …Run Code Online (Sandbox Code Playgroud) 我用来matplotlib制作散点图,并且 x 轴标签一起运行到难以辨认的程度。这是所有相关代码:
plt.xticks(rotation=30)
plt.scatter(x,y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
x和y分别是 x 轴值和 y 轴值的列表。
这篇 SO 帖子(如何防止 x 轴标签重叠)提出了同样的问题,但如果那里有答案,我无法梳理出来。
这篇文章(Cleatest way to hide every nth tick label in matplotlib colorbar?)在颜色条的上下文中提出了类似的问题。所有似乎对人们有效的反应都是以下形式
for label in cbar.ax.xaxis.get_ticklabels()[::2]:
label.set_visible(False)
Run Code Online (Sandbox Code Playgroud)
或者
plt.setp(cbar.ax.get_xticklabels()[::2], visible=False)
Run Code Online (Sandbox Code Playgroud)
其中cbar是提问者的颜色条对象。例如,每次我尝试根据我的情况调整这些解决方案时
plt.xticks(rotation=30)
plot = plt.scatter(x,y)
plt.setp(plot.get_xticklabels()[::2], visible=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我收到类似错误
AttributeError: 'PathCollection' object has no attribute 'get_xticklabels'.
Run Code Online (Sandbox Code Playgroud)
与上面类似,如果我尝试plot.ax.get_xticklabels()我会得到AttributeError: 'PathCollection' object has no attribute 'ax',等等。
如何仅显示每个第 n 个轴标签?