error_text我有一个 pandas DataFrame,其中包含许多行和一列名为包含多个空值的字符串。我想根据该列与另一列的相关性来填充这些缺失的数据。
mydf_example = pd.DataFrame({'a':[1,2,3,4,5,6,3],'b':[10,20,30,40,50,60,30],'c':['a','b','c','d','e','f','c'], 'error_text':[np.nan,'some_text','other_text',np.nan,'more_text','another_text',np.nan]})
mydf_example
a b c error_text
0 1 10 a NaN
1 2 20 b some_text
2 3 30 c other_text
3 4 40 d Nan
4 5 50 e more_text
5 6 60 f another_text
6 3 30 c NaN
Run Code Online (Sandbox Code Playgroud)
首先,我创建了sub_df删除丢失数据的行:
mydf_example = mydf_example.dropna()
mydf_example
a b c error_text
1 2 20 b some_text
2 3 30 c other_text
4 5 50 e more_text
5 6 60 f another_text
Run Code Online (Sandbox Code Playgroud)
然后我将该 …
我已经使用R中的MICE包成功完成了对我的问卷调查缺失数据的多重估算,并对汇总的推算变量进行了线性回归.我似乎无法弄清楚如何提取单个池化变量并在图形中绘图.有任何想法吗?
例如
>imp <- mice(questionnaire)
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP))
>summary(pool(fit))
Run Code Online (Sandbox Code Playgroud)
我想通过TMAS绘制汇集的APE.
使用nhanes的可重现示例:
> library(mice)
> nhanes
> imp <-mice(nhanes)
> fit <-with(imp, lm(bmi~chl+hyp))
> fit
> summary(pool(fit))
Run Code Online (Sandbox Code Playgroud)
我想将汇集的chl与汇集的bmi(例如)联系起来.
我能够实现的最好的是
> mat <-complete(imp, "long")
> plot(mat$chl~mat$bmi)
Run Code Online (Sandbox Code Playgroud)
我相信这给出了所有5个插补的综合情节,并不是我想要的(我认为).
我要这个:

而且我认为传递na.action=na.pass给boxplot会让NA出现在分组名称中.以下是一些示例代码:
#Build a fake dataset
set.seed(212012)
nn = 100
sample_data <- data.frame( score = c( rpois(nn, 1), rpois(nn, 2),
rpois(nn, 1.5), rpois(nn, 3)),
category = c( rep(0, nn), rep(1, nn),
rep(2, nn), rep(NA, nn) ))
boxplot( score ~ category, data=sample_data, na.action=na.pass )
Run Code Online (Sandbox Code Playgroud)
但这产生了这个:

获得我想要的"简单"方法是以下代码,但它对于探索性数据分析并不好:
sample_data$category2 <- sample_data$category
sample_data$category2[ is.na(sample_data$category) ] <- 'NA'
boxplot( score ~ category2, data=sample_data )
Run Code Online (Sandbox Code Playgroud)
来自R Guru的任何暗示?我能够从这个更一般的讨论中找到关于na.pass的内容,以及来自Ripley教授的na.pass的起源.但是,数据中出现的缺失数据(NA)与因子本身的缺失数据之间似乎没有区别.我错过了一些简单的东西,还是这更像是一个功能请求?
我有这样的数据集
4 6 18 12 4 5
2 9 0 3 NA 13
11 NA 6 7 7 9
Run Code Online (Sandbox Code Playgroud)
如何使用R填充缺失值?
如果条件向量包含NA,有没有办法让条件下标?假设我有一个像这样的data.frame
dframe <- data.frame(a=c(1,32,4,5,8),b=c(1,2,3,4,5),d=c(NA,5,5,10,9))
dframe[dframe$d > 9,"a"] <- NA
Run Code Online (Sandbox Code Playgroud)
如果它不是dframe $ d中的NA那么这将是直截了当的.我已经看到这里的%in%语法绕过NAs,但不知道如何管理条件.我可以看出这是一个普遍的问题,因为我不太确定我是否想在条件或其他东西中获得缺失值的NA.但我也有兴趣了解人们如何处理这种情况.
在我的特定情况下,当NA在这种情况下被视为FALSE时,这将简单地有所帮助.
我有一个如下所示的数据框:
set.seed(300)
df <- data.frame(site = sort(rep(paste0("site", 1:5), 5)),
value = sample(c(1:5, NA), replace = T, 25))
df
site value
1 site1 NA
2 site1 5
3 site1 5
4 site1 5
5 site1 5
6 site2 1
7 site2 5
8 site2 3
9 site2 3
10 site2 NA
11 site3 NA
12 site3 2
13 site3 5
14 site3 4
15 site3 4
16 site4 NA
17 site4 NA
18 site4 4
19 site4 4
20 site4 4 …Run Code Online (Sandbox Code Playgroud) 我想对具有一些缺失值的数据框进行排序.
name dist1 dist2 dist3 prop1 prop2 prop3 month2 month5 month10 month25 month50 issue
1 A1 232.0 1462.91 232.0000 728.00 0.370 0.05633453 1188.1 1188.1 1188.1 1188.1 1188.1 Yes
2 A2 142.0 58.26 2847.7690 17.10 0.080 0.07667063 14581.6 15382.0 19510.9 25504.0 NA Yes
3 A3 102.0 1160.94 102.0000 53.40 0.090 0.07667063 144.8 144.8 144.8 291.8 761.4 Yes
4 A4 126.0 1377.23 126.0000 64.30 2.120 0.11040091 366.5 496.8 665.3 NA NA Yes
5 A5 118.0 654.94 118.0000 16.50 0.030 0.05841914 0.0 10.2 …Run Code Online (Sandbox Code Playgroud) 我有一个数据集,并不是每个主题的观察都在完全相同的时间点观察到,但我想把它变成一个数据集,每个人的观察结果都在完全相同的时间点被观察到(所以我可以在SAS proc traj).
例如,假设我有数据集"m":
id <- c(1,1,1,1,2,2,3,3,3)
age <- c(2,3,4,5,3,6,2,5,8)
IQ <- c(3,4,5,4,6,5,3,8,10)
m <- data.frame(id,age,IQ)
> m
id age IQ
1 1 2 3
2 1 3 4
3 1 4 5
4 1 5 4
5 2 3 6
6 2 6 5
7 3 2 3
8 3 5 8
9 3 8 10
> unique(age)
[1] 2 3 4 5 6 8
Run Code Online (Sandbox Code Playgroud)
我想把m变成m2.但我只能手动完成.
id2 <- c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3)
age2 <- c(2,3,4,5,6,8,2,3,4,5,6,8,2,3,4,5,6,8)
IQ2 <- c(3,4,5,4,NA,NA,6,5,NA,NA,NA,NA,3,8,10,NA,NA,NA)
m2 <- data.frame(id2,age2,IQ2)
m2 …Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据集,其中缺少数年的数据.
County Year Pop
12 1999 1.1
12 2001 1.2
13 1999 1.0
13 2000 1.1
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西
County Year Pop
12 1999 1.1
12 2000 NaN
12 2001 1.2
13 1999 1.0
13 2000 1.1
13 2001 nan
Run Code Online (Sandbox Code Playgroud)
我已经尝试将索引设置为年份,然后使用reindex与另一个仅几年的数据框架方法(这里提到的Pandas:添加缺失月份的数据)但它给了我错误cant reindex重复值.我也试过df.loc,但它有同样的问题.我甚至尝试了一个完整的外部连接,只有几年的空白df,但这也没有用.
我怎么解决这个问题?
假设我有下表:
ProdID Date Val1 Val2 Val3
Prod1 4/1/2019 1 3 4
Prod1 4/3/2019 2 3 54
Prod1 4/4/2019 3 4 54
Prod2 4/1/2019 1 3 3
Prod2 4/2/2019 1 3 4
Prod2 4/3/2019 2 4 4
Prod2 4/4/2019 2 5 3
Run Code Online (Sandbox Code Playgroud)
Prod2项正确地填充,因为我们已经从得到的数据4/1/2019来4/4/2019。
Prod1缺少1个日期- 4/2/2019。
我想查找所有ProdID的缺失日期,并使用从上一个条目的最后一个复制的数据填充Val1-3。例如,我想将数据复制4/1/2019到4/2/2019
ProdID Date Val1 Val2 Val3
Prod1 4/1/2019 1 3 4
Prod1 4/2/2019 1 3 4
Prod1 4/3/2019 2 3 54
Prod1 4/4/2019 3 4 54 …Run Code Online (Sandbox Code Playgroud) missing-data ×10
r ×7
pandas ×3
python ×3
dataframe ×2
boxplot ×1
imputation ×1
na ×1
plot ×1
r-mice ×1
reindex ×1
repeat ×1
sorting ×1
statistics ×1
time-series ×1