我正在使用 python 3.6 和 pytest-html 生成 HTML 报告。一切都工作顺利,但是当我向经理分享我的 html 报告时,整个文档的 css 不正确。有人可以告诉我发生这种情况的原因以及解决方案吗?
我有一个带有两个键的字典列表.第一个键是共享索引,第二个键是列名.我想将此列表转换为Pandas DataFrame对象.但是当我这样做时,我得到重复的索引行,其中每一行都有一列空白.
使用此代码:
import pandas as pd
l = [{'col_a': 0, 'idx': 0},
{'col_b': 5, 'idx': 0},
{'col_a': 1, 'idx': 1},
{'col_b': 6, 'idx': 1},
{'col_a': 2, 'idx': 2},
{'col_b': 7, 'idx': 2},
{'col_a': 3, 'idx': 3},
{'col_b': 8, 'idx': 3},
{'col_a': 4, 'idx': 4},
{'col_b': 9, 'idx': 4}]
df = pd.DataFrame(l)
df = df.set_index('idx')
Run Code Online (Sandbox Code Playgroud)
我明白了
col_a col_b
idx
0 0.0 NaN
0 NaN 5.0
1 1.0 NaN
1 NaN 6.0
2 2.0 NaN
2 NaN 7.0
3 3.0 …Run Code Online (Sandbox Code Playgroud) 我试图显示mean,median和mode线两个图,但他们只是在最后图可见:
#Cut the window in 2 parts
f, (ax_box, ax_hist) = plt.subplots(2, sharex=True, gridspec_kw={"height_ratios": (0.2, 1)})
#plt.figure(figsize=(10,7));
mean=df[' rating'].mean()
median=df[' rating'].median()
mode=df[' rating'].mode().get_values()[0]
plt.axvline(mean, color='r', linestyle='--')
plt.axvline(median, color='g', linestyle='-')
plt.axvline(mode, color='b', linestyle='-')
plt.legend({'Mean':mean,'Median':median,'Mode':mode})
sns.boxplot(df[" rating"], ax=ax_box)
sns.distplot(df[" rating"], ax=ax_hist)
ax_box.set(xlabel='')
Run Code Online (Sandbox Code Playgroud) 我正在用 绘制 X 图twinx,并且我想设置zorder这些轴的 :
import matplotlib.pyplot as plt
import numpy as np
from pandas import plotting
x1 = np.linspace(1,20,10)
y1 = np.random.random_integers(1,20,10)
y2 = np.random.random_integers(1,20,10)
y3 = np.random.random_integers(1,20,10)
fig,ax = plt.subplots()
bx = ax.twinx()
cx = ax.twinx()
colors = getattr(getattr(plotting, '_style'), '_get_standard_colors')
(num_colors=5)
ax.plot(x1,y1, label = "1",color= colors[0])
bx.plot(x1,y2, label = "2",color= colors[1])
cx.plot(x1,y3, label = "3",color= colors[2])
cx.spines["right"].set_position(("axes", 1.1))
li,la = ax.get_legend_handles_labels()
li2,la2 = bx.get_legend_handles_labels()
li3,la3 = cx.get_legend_handles_labels()
lines= li+li2+li3
labels = la+la2+la3
ax.legend(lines, …Run Code Online (Sandbox Code Playgroud) Seaborndistplot现已弃用,并将在未来版本中删除。建议使用histplot(或displot作为图形级图)作为替代方案。distplot但和之间的预设有所不同histplot:
from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns
x_list = [1, 2, 3, 4, 6, 7, 9, 9, 9, 10]
df = pd.DataFrame({"X": x_list, "Y": range(len(x_list))})
f, (ax_dist, ax_hist) = plt.subplots(2, sharex=True)
sns.distplot(df["X"], ax=ax_dist)
ax_dist.set_title("old distplot")
sns.histplot(data=df, x="X", ax=ax_hist)
ax_hist.set_title("new histplot")
plt.show()
Run Code Online (Sandbox Code Playgroud)
那么,我们如何配置histplot来复制已弃用的输出distplot?
我有一个numpy值范围为的数组0-255。我想将其转换为3通道RGB图像。我使用了该PIL Image.convert()函数,但是它将其转换为灰度图像。
我正在使用Python PIL库numpy通过以下代码将数组转换为图像:
imge_out = Image.fromarray(img_as_np.astype('uint8'))
img_as_img = imge_out.convert("RGB")
Run Code Online (Sandbox Code Playgroud)
输出将图像转换为3个通道,但显示为黑白(灰度)图像。如果我使用以下代码
img_as_img = imge_out.convert("R")
Run Code Online (Sandbox Code Playgroud)
表明
error conversion from L to R not supported
Run Code Online (Sandbox Code Playgroud)
如何将numpy数组正确转换为RGB图片?
我有一组数据。我使用熊猫分别将它们转换为虚拟变量和分类变量。那么,现在我想知道如何在Python中运行多元线性回归(我正在使用statsmodels)?是否有一些考虑因素,或者也许我必须指出我的代码中变量是虚拟的还是分类的?也许变量的转换就足够了,我只需要将回归作为model = sm.OLS(y, X).fit()?运行。
我的代码如下:
datos = pd.read_csv("datos_2.csv")
df = pd.DataFrame(datos)
print(df)
Run Code Online (Sandbox Code Playgroud)
我得到这个:
Age Gender Wage Job Classification
32 Male 450000 Professor High
28 Male 500000 Administrative High
40 Female 20000 Professor Low
47 Male 70000 Assistant Medium
50 Female 345000 Professor Medium
27 Female 156000 Assistant Low
56 Male 432000 Administrative Low
43 Female 100000 Administrative Low
Run Code Online (Sandbox Code Playgroud)
然后我这样做:1 =男性,0 =女性,1:教授,2:行政,3:助理:
df['Sex_male']=df.Gender.map({'Female':0,'Male':1})
df['Job_index']=df.Job.map({'Professor':1,'Administrative':2,'Assistant':3})
print(df)
Run Code Online (Sandbox Code Playgroud)
得到这个:
Age Gender Wage Job Classification Sex_male Job_index
32 Male 450000 Professor High 1 …Run Code Online (Sandbox Code Playgroud) 首先,要说的是。我知道类似的问题,即pandas-boxplot-groupby- Different-ylim-in-each-subplot和different-ylim-for-shared-axes-in-pandas-boxplot但我仍然无法获得所需的结果与我的数据集。我有一个废水样本数据集,其中列是不同的污染物,行是三个不同组的“代码”:
数据集看起来像这样(但更大)
data = pd.DataFrame({'Group': pd.Series(['IN', 'IN', 'IN', 'OUT', 'OUT', 'OUT']),
'COD' : pd.Series([800, 900, 100, 400, 450, 500]),
'BOD' : pd.Series([40, 50, 60, 20, 25, 30])}
Run Code Online (Sandbox Code Playgroud)
和我的箱线图代码(在带有 matplotlib 内联的 jupyter 中)
fig, ax = plt.subplots(figsize=(10, 5))
data.boxplot(['COD','BOD'], 'Group', ax)
Run Code Online (Sandbox Code Playgroud)
输出是这样的

显然,所有数据的 y 轴不可能都相同,但即使在上面的链接的帮助下,我也无法以这种方式重新创建输出来更改各个子图的轴。我真的很感激任何对此的帮助。
我只需要绘制 3D 散点图。
from mpl_toolkits import mplot3d
from matplotlib import pyplot as plt
ax = plt.axes(projection="3d")
ax.scatter(dots_x, dots_y, dots_z, c='red')
plt.show()
Run Code Online (Sandbox Code Playgroud)
dots_x、dots_y、dots_z 是坐标(python 列表)。每次我运行程序时我都会得到ValueError: Invalid RGBA argument: (1.0, 0.0, 0.0, 0.300088123161615)
我对这个元组一无所知。但是如果我使用plot3D而不是scatter3D我会得到完美的曲线。
完整错误消息:
Traceback (most recent call last):
File "C:\Users\bozzy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\colors.py", line 166, in to_rgba
rgba = _colors_full_map.cache[c, alpha]
KeyError: ((1.0, 0.0, 0.0, 0.300088123161615), None)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\bozzy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\backends\backend_qt5.py", line 519, in _draw_idle
self.draw()
File "C:\Users\bozzy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, …Run Code Online (Sandbox Code Playgroud) +1 尽管每个索引元素被多次引用,但每个元素只出现一次。
a = np.arange(12).reshape((3, 4))
b = a.copy()
print(a)
---
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
a[1, [0, 2, 0, 2, 0]] += 1 # a[1][0] referenced 3 times and a[1][2] 2 times
print(a-b)
---
[[0 0 0 0]
[1 0 1 0] # <--- +1 occurs only once for a[1][0] and a[1][2]
[0 0 0 0]]
Run Code Online (Sandbox Code Playgroud)
有没有办法以一种麻木的本机方式创建一种像下面这样的累积加法?
# Result a
[[ 0 1 2 3]
[ 7 …Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×5
pandas ×3
numpy ×2
seaborn ×2
graph ×1
histogram ×1
image ×1
pytest-html ×1
python-3.x ×1
selenium ×1
statsmodels ×1
subplot ×1
sympy ×1