小编Dex*_*611的帖子

在直方图上添加密度曲线

我可以在 python 中制作直方图,但无法添加密度曲线,我看到许多代码使用不同的方式在直方图上添加密度曲线,但我不确定如何获取我的代码

我添加了密度 = true 但无法在直方图上获得密度曲线

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
X=df['A']

hist, bins = np.histogram(X, bins=10,density=True)
width = 0.7 * (bins[1] - bins[0])
center = (bins[:-1] + bins[1:]) / 2
plt.bar(center, hist, align='center', width=width)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib pandas seaborn

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

group by 后删除异常值,然后计算每组的平均值

我有一个数据框,我想首先对特定列(ID)进行分组,然后根据组从特定列(数字)中删除异常值,然后计算每个组的平均值。

library(dplyr)
id<-c("A","B","C","A","B","B")
id<-as.data.frame(id)
number <-c(5,10,2,6,1000,12)
number<-as.data.frame(number)
total<-cbind(id,number)




Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但它不起作用

remove_outliers <- function(x, na.rm = TRUE, ...) {
  qnt <- quantile(x, probs = c(.25, .75), na.rm = na.rm, ...)
  val <- 1.5 * IQR(x, na.rm = na.rm)
  y <- x
  y[x < (qnt[1] - val)] <- NA
  y[x > (qnt[2] + val)] <- NA
  y
}


df2 <- total %>% 
  group_by(id) %>% 
  mutate(mean_val = remove_outliers(number)) %>% 
  ungroup() %>% 
  filter(!is.na(mean_val))
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,我将不胜感激

输入和预期 O/P

在此输入图像描述

r dplyr tidyr tidyverse

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

SQL Server 中具有空值多列的平均值

我想取多列的平均值,如果存在空值,则忽略该值并将剩余值作为平均值。

例如,如果我有10,NULLas 值,那么我想要 10 作为平均值,我不希望将空值视为 0,然后将平均值视为 10+0 -> 5,我希望平均值为 10。

这是一个虚拟表,我有多个列,例如 Month1.... Month 1000,并且我不想在通过除以列数来计算平均值时对任何值进行硬编码。

我的这个查询的输出是错误的:

CREATE TABLE Dummy_tab 
(
    empid int,
    Month1 int,
    Month2 int,
    Month3 int,
);
 
INSERT INTO Dummy_tab 
VALUES (1, NULL,10, 20), (2, NULL,NULL, 20), (3, 10,20, 30);
  
SELECT
    empid,
    AVG(Month1 + Month2 + Month3)
FROM
    Dummy_tab
GROUP BY 
    empid
Run Code Online (Sandbox Code Playgroud)

所需输出的片段以及我即将输出的内容

在此输入图像描述

sql t-sql sql-server

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

标签 统计

dplyr ×1

matplotlib ×1

numpy ×1

pandas ×1

python ×1

r ×1

seaborn ×1

sql ×1

sql-server ×1

t-sql ×1

tidyr ×1

tidyverse ×1