我可以在 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) 我有一个数据框,我想首先对特定列(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
我想取多列的平均值,如果存在空值,则忽略该值并将剩余值作为平均值。
例如,如果我有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)
所需输出的片段以及我即将输出的内容