假设我在使用 pytest 的 test_func.py 脚本中使用 np.random.normal() 生成一些输入 numpy 数组数据。
现在我想调用我正在测试的 func.py 函数。我怎样才能获得可测试的结果?如果我在 test_func.py 脚本中设置种子,它不会对应于 func.py 函数中生成的随机数据,对吗?
我希望能够在 test_func.py 中创建一些参考数据,然后测试 func.py 脚本中生成的随机性是否与我创建的参考数据相当(因此,测试 func.py 函数的随机性和功能) 。
谢谢你!
编辑:这是一些示例代码来描述我的过程:
# func.py
import numpy as np
# I send in a numpy array signal, generate noise, and append noise to signal
def generate_random_noise(signal):
noise = np.random.normal(0, 5, signal.shape)
signal_w_noise = signal + noise
return signal_w_noise
# test_func.py
import pytest
import numpy as np
import func
def test_generate_random_noise():
# create reference signal
# ...
np.random.seed(5) …Run Code Online (Sandbox Code Playgroud) 我想根据.groupby()in获得一些百分比率pandas。我的目标是取一个指标列Ind,得到当年 A(分子)的比率除以总数(A+B)
示例数据:
import pandas as pd
import numpy as np
df: pd.DataFrame = pd.DataFrame([['2011','A',1,2,3], ['2011','B',4,5,6],['2012','A',15,20,4],['2012','B',17,12,12]], columns=["Year","Ind","X", "Y", "Z"])
print(df)
Year Ind X Y Z
0 2011 A 1 2 3
1 2011 B 4 5 6
2 2012 A 15 20 4
3 2012 B 17 12 12
Run Code Online (Sandbox Code Playgroud)
2011 年的示例:XRate将总结 X 的 A 指标(即 1)并除以总数 (A+B),即 5,因此我将得到 0.20 的 Xrate。
我想对所有 X、Y、Z 列执行此操作以获得费率。我试过做 lambda 应用,但不能完全得到想要的结果。
预期结果:
Year XRate YRate ZRate
0 …Run Code Online (Sandbox Code Playgroud) 我正在使用plotlyexpress 来制作树形图。我想用标签以及父级的百分比和色阶中使用的值来注释我的数据扇区。
如何添加注释来显示color树形图参数中使用的实际值?在下面的示例代码中,我想为每个部门注释“薪水”。我还想添加一些额外的文字来描述每个部门的数字。例如,“总计百分比:”附加到百分比值以获取更多文本描述将非常适合帮助对树形图进行更多注释。任何添加自定义文本的方法都是有益的。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import plotly.express as px
d = {'count': [1,1,1,2,2,3,3,3,4],
'name': ['bob','bob','bob','shelby','shelby','jordan','jordan','jordan','jeff'],
'type': ['type1','type2','type4','type1','type6','type5','type8','type2',None],
'salary':[1000,2000,3000,10000,15000,30000,100000,50000,25000]}
df = pd.DataFrame(data=d)
# group data and aggregate
df_plot = df.groupby(['name','type'])[['salary','count']].sum().reset_index()
avg_salary = df_plot['salary'].sum()/df_plot['count'].sum()
# plot treemap
fig = px.treemap(df_plot,
values='count',
color='salary',
color_continuous_scale='balance',
color_continuous_midpoint=avg_salary,
path=['type','name'])
fig.data[0].textinfo = 'label+value+percent parent'
fig.show()
Run Code Online (Sandbox Code Playgroud) 我有一个test.csv可以逐行读取并确定每行有多少字节的方法。
这应该低于 37 个字节,因为我在 Windows 上,前两行\r\n总共添加了 4 个字节。
foo,bar,baz
100,200,300
400,500,600
Run Code Online (Sandbox Code Playgroud)
我想简单地使用 确定每行有多少字节csv.NewReader()。\n但是,我知道 csv.Reader在下面的代码中进行字节计数时不会计算每行中的逗号和。
我是否应该为每行中的逗号数 + 行数添加一些数学运算,为 -1 添加 2 个字节,\r\n为最后一行添加一个字节,因为它没有 \r\n?这感觉有点老套,所以我宁愿看看是否有更好的解决方案来解决我的字节计数问题。
我的代码:
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"os"
)
func main() {
file, err := os.Open("test.csv")
if err != nil {
log.Fatal(err)
}
defer file.Close()
fileInfo, err := file.Stat()
if err != nil {
log.Fatal(err)
}
fmt.Printf("file total bytes is %d\n", fileInfo.Size())
// init reader
reader …Run Code Online (Sandbox Code Playgroud) 我试图在函数中使用dplyr创建一个用户定义的函数,我可以传递多个参数来使用dplyr汇总数据,然后用ggplot绘制它.
这是一些示例数据以及我正在尝试使用dplyr然后绘制的内容
df <-data.frame(Year = c("2006", "2006", "2006", "2007", "2007", "2007", "2008", "2009", "2010", "2010", "2009", "2009"), JudicialOrientation = c("Defense", "Plaintiff", "Plaintiff", "Neutral", "Defense", "Plaintiff", "Defense", "Plaintiff", "Neutral", "Neutral", "Plaintiff","Defense"), Loss = c(100000, 100, 2500, 100000, 25000, 0, 7500, 5200, 900, 100, 0, 50))
df1 <- df %>%
group_by(Year, JudicialOrientation) %>%
summarise(MeanLoss =mean(Loss))
ggplot(df1, aes(x = JudicialOrientation, y = MeanLoss, color = Year, group =Year)) +
geom_line() +
geom_point()
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试将其复制到用户函数中,以便我可以传递不同的变量来获得类似的结果.
这是我到目前为止的尝试:
ConsistencyPlot <- function(df,var1,timevar,lossvar){
df1 <- df %>%
group_by_(df[timevar], df[var1]) …Run Code Online (Sandbox Code Playgroud) 我想string_agg(column_name,',')在 SQL 结果集中的列中使用一些 ID。我将按单个键进行分组,但也想确保每个分组集都会导致 n 行被输入到函数string_agg(column_name,',')中
例子:
create table #temp (first_name varchar(20), data_id char(3))
insert into #temp (first_name, data_id) values('jeff', 'XX1')
insert into #temp (first_name, data_id) values('jeff', 'X23')
insert into #temp (first_name, data_id) values('jeff', 'X87')
insert into #temp (first_name, data_id) values('jeff', 'X09')
insert into #temp (first_name, data_id) values('jeff', 'X15')
insert into #temp (first_name, data_id) values('bob', 'X76')
insert into #temp (first_name, data_id) values('bob', 'X17')
insert into #temp (first_name, data_id) values('bob', 'X98')
insert into #temp (first_name, data_id) values('bob', …Run Code Online (Sandbox Code Playgroud) 我正在尝试对一些数据进行字符串汇总,并遇到了问题。此数据将用于邮件合并。
在将数据聚合到单个列中,然后通过邮件合并将其复制到电子邮件中之后,结果看起来像
Owner: Me, Pet: Dog, Other Pet: Cat, Pet2: Dog2, OtherPet2: Cat2
Owner: Me, Pet: Dog, Other Pet: Cat, Pet2: Dog2, OtherPet2: Cat2
Owner: Me, Pet: Dog, Other Pet: Cat, Pet2: Dog2, OtherPet2: Cat2
Owner: Me, Pet: Dog, Other Pet: Cat, Pet2: Dog2, OtherPet2: Cat2
Run Code Online (Sandbox Code Playgroud)
我希望每一行都有相同的缩进,但是我目前无法通过尝试许多操作来实现。
我的可复制代码在这里:
DROP TABLE #Temp1
DROP TABLE #temp2
CREATE TABLE #Temp1 (Owner varchar(10), val1 varchar(10), val2 varchar(10), val3 varchar(10), val4 varchar(10))
INSERT INTO #Temp1 values('Me','Dog','Cat', 'Dog2', 'Cat2')
INSERT INTO #Temp1 values('You','Dog','Cat', 'Dog2', 'Cat2')
INSERT …Run Code Online (Sandbox Code Playgroud)