小编Mr.*_*. T的帖子

如何在不更改 css 的情况下共享 pytest-html 的 html 报告

我正在使用 python 3.6 和 pytest-html 生成 HTML 报告。一切都工作顺利,但是当我向经理分享我的 html 报告时,整个文档的 css 不正确。有人可以告诉我发生这种情况的原因以及解决方案吗?

我运行时的报告视图:在此输入图像描述

当我与经理共享文档时的报告视图 在此输入图像描述

selenium python-3.x pytest-html

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

从dicts列表中重复索引Python Pandas

我有一个带有两个键的字典列表.第一个键是共享索引,第二个键是列名.我想将此列表转换为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)

python pandas

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

Seaborn中位数模式线仅显示在最后一张图中

我试图显示meanmedianmode线两个图,但他们只是在最后图可见:

#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)

python matplotlib seaborn

4
推荐指数
2
解决办法
3671
查看次数

子图 axis.set_zorder,图消失

我正在用 绘制 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)

python matplotlib subplot

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

模拟已弃用的seaborn distplots

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

python matplotlib histogram kernel-density seaborn

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

将numpy数组转换为RGB图像

我有一个numpy值范围为的数组0-255。我想将其转换为3通道RGB图像。我使用了该PIL Image.convert()函数,但是它将其转换为灰度图像。

我正在使用Python PILnumpy通过以下代码将数组转换为图像:

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 numpy image python-imaging-library

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

具有虚拟/分类变量的线性回归

我有一组数据。我使用熊猫分别将它们转换为虚拟变量和分类变量。那么,现在我想知道如何在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)

python linear-regression pandas statsmodels dummy-variable

3
推荐指数
2
解决办法
8440
查看次数

Pandas 箱线图,子图中的不同 y 轴

首先,要说的是。我知道类似的问题,即pandas-boxplot-groupby- Different-ylim-in-each-subplotdifferent-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 轴不可能都相同,但即使在上面的链接的帮助下,我也无法以这种方式重新创建输出来更改各个子图的轴。我真的很感激任何对此的帮助。

python matplotlib pandas

3
推荐指数
2
解决办法
6877
查看次数

matplotlib pyplot.show:无效的 RGBA

我只需要绘制 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)

python visualization graph matplotlib sympy

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

numpy - 有没有办法在 arr[1, [0, 2, 0, 2, 0]] += 1 处引起多次增量

背景

+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)

numpy

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