标签: missing-data

如何在"pandas"中按列获取缺失/ NaN数据的摘要计数?

R中,我可以使用该summary命令快速查看缺失数据的计数,但是等效的pandasDataFrame方法describe不会报告这些值.

我知道我可以做点什么

len(mydata.index) - mydata.count()
Run Code Online (Sandbox Code Playgroud)

计算每列的缺失值的数量,但我想知道是否有更好的习语(或者我的方法是否正确).

reporting nan missing-data pandas

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

在R中的data.table中选择NA

如何选择数据表中主键中缺少值的所有行.

DT = data.table(x=rep(c("a","b",NA),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)   
Run Code Online (Sandbox Code Playgroud)

选择特定值很容易

DT["a",]  
Run Code Online (Sandbox Code Playgroud)

选择缺失值似乎需要矢量搜索.一个人不能使用二进制搜索.我对么?

DT[NA,]# does not work
DT[is.na(x),] #does work
Run Code Online (Sandbox Code Playgroud)

select r missing-data na data.table

23
推荐指数
2
解决办法
2万
查看次数

将列中的NA替换为相邻列中的值

此问题与具有相似标题的帖子相关(将R矢量中的NA替换为相邻值).我想扫描数据框中的列,并将NA替换为相邻单元格中的值.在上述帖子中,解决方案是将NA替换为不是来自相邻矢量的值(例如,数据矩阵中的相邻元素),而是固定值的条件替换.以下是我的问题的可重现的例子:

UNIT <- c(NA,NA, 200, 200, 200, 200, 200, 300, 300, 300,300)
STATUS <-c('ACTIVE','INACTIVE','ACTIVE','ACTIVE','INACTIVE','ACTIVE','INACTIVE','ACTIVE','ACTIVE',
                    'ACTIVE','INACTIVE') 
TERMINATED <- c('1999-07-06' , '2008-12-05' , '2000-08-18' , '2000-08-18' ,'2000-08-18' ,'2008-08-18',
                        '2008-08-18','2006-09-19','2006-09-19' ,'2006-09-19' ,'1999-03-15') 
START <- c('2007-04-23','2008-12-06','2004-06-01','2007-02-01','2008-04-19','2010-11-29','2010-12-30',
                   '2007-10-29','2008-02-05','2008-06-30','2009-02-07')
STOP <- c('2008-12-05','4712-12-31','2007-01-31','2008-04-18','2010-11-28','2010-12-29','4712-12-31',
                  '2008-02-04','2008-06-29','2009-02-06','4712-12-31')
Run Code Online (Sandbox Code Playgroud)

TEST < - data.frame(UNIT,STATUS,TERMINATED,START,STOP)测试

  UNIT   STATUS TERMINATED      START       STOP
1    NA   ACTIVE 1999-07-06 2007-04-23 2008-12-05
2    NA INACTIVE 2008-12-05 2008-12-06 4712-12-31
3   200   ACTIVE 2000-08-18 2004-06-01 2007-01-31
4   200   ACTIVE 2000-08-18 2007-02-01 2008-04-18
5   200 INACTIVE 2000-08-18 2008-04-19 2010-11-28
6   200 …
Run Code Online (Sandbox Code Playgroud)

replace r missing-data na

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

如果未在str.format中传递,则将值保留为空

我遇到了一个相当简单的问题,我无法想出一个优雅的解决方案.

我正在str.format一个函数中创建一个字符串,该函数在一个dict替换中传递以用于格式.我想创建字符串并使用值格式化它们,如果它们被传递,否则将它们留空.

防爆

kwargs = {"name": "mark"}
"My name is {name} and I'm really {adjective}.".format(**kwargs)
Run Code Online (Sandbox Code Playgroud)

应该回来

"My name is mark and I'm really ."
Run Code Online (Sandbox Code Playgroud)

而不是抛出KeyError(如果我们不做任何事情会发生什么).

令人尴尬的是,我甚至无法为这个问题提出一个不优雅的解决方案.我想我可以通过不使用来解决这个问题str.format,但如果可能的话,我宁愿使用内置(主要是我想要的).

注意:我事先并不知道将使用哪些密钥.如果有人包含一把钥匙但是没有把它放在kwargs dict中,我试图优雅地失败.如果我100%准确地知道将要查找哪些键,我只需填充所有键并完成它.

python string-formatting missing-data

20
推荐指数
2
解决办法
6001
查看次数

计算pandas DataFrame中缺少值的行数的最佳方法

我目前想出了一些工作来计算熊猫中缺失值的数量DataFrame.那些非常难看,我想知道是否有更好的方法来做到这一点.

让我们创建一个例子DataFrame:

from numpy.random import randn
df = pd.DataFrame(randn(5, 3), index=['a', 'c', 'e', 'f', 'h'],
               columns=['one', 'two', 'three'])
df = df.reindex(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我现在拥有的是

a)计算缺少值的单元格:

>>> sum(df.isnull().values.ravel())
9
Run Code Online (Sandbox Code Playgroud)

b)计算某处缺少值的行:

>>> sum([True for idx,row in df.iterrows() if any(row.isnull())])
3
Run Code Online (Sandbox Code Playgroud)

python missing-data pandas

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

如何处理R中的多种缺失?

许多调查都有不同类型缺失的代码.例如,代码簿可能表明:

0-99数据

-1没问的问题

-5不知道

-7拒绝回应

-9模块没问

Stata有一个很好的设施来处理这些多种缺失,因为它允许你分配一个通用的.丢失数据,但也允许更具体的缺失类型(.a,.b,.c,...,.z).所有查看缺失的命令都会报告所有缺失条目的答案,但是您可以稍后对各种缺失进行排序.当您认为拒绝回应对归责策略的影响与未提出的问题不同时,这尤其有用.

我从未在R中遇到过这样的设施,但我真的很想拥有这种能力.有没有办法标记几种不同类型的NA?我可以想象创建更多的数据(包含缺失类型的长度为nrow(my.data.frame)的向量,或者哪些行具有哪种类型的缺失的更紧凑的索引),但这看起来非常笨拙.

r survey missing-data stata data-structures

19
推荐指数
2
解决办法
1376
查看次数

在R中的选定列中将所有NA替换为FALSE

我有类似的问题这一个,但我的数据集是有点大:50列与1列UID等栏目,无论是携带TRUE还是NA,我想改变一切NAFALSE,但我不希望使用显式循环.

可以plyr做到的伎俩?谢谢.

更新#1

感谢您的快速回复,但如果我的数据集如下所示:

df <- data.frame(
  id = c(rep(1:19),NA),
  x1 = sample(c(NA,TRUE), 20, replace = TRUE),
  x2 = sample(c(NA,TRUE), 20, replace = TRUE)
)
Run Code Online (Sandbox Code Playgroud)

我只想要X1X2被处理,如何做到这一点?

r missing-data dataframe na imputation

18
推荐指数
3
解决办法
3万
查看次数

如何用数据框中的因子用LOCF填充NA,按国家/地区划分

我有以下数据框(简化),国家/地区变量作为因素,值变量具有缺失值:

country value
AUT     NA
AUT     5
AUT     NA
AUT     NA
GER     NA
GER     NA
GER     7
GER     NA
GER     NA
Run Code Online (Sandbox Code Playgroud)

以下内容生成以上数据框:

data <- data.frame(country=c("AUT", "AUT", "AUT", "AUT", "GER", "GER", "GER", "GER", "GER"), value=c(NA, 5, NA, NA, NA, NA, 7, NA, NA))
Run Code Online (Sandbox Code Playgroud)

现在,我想使用最后一次观察结果(LOCF)替换每个国家子集中的NA值.我知道命令na.locf动物园包.data <- na.locf(data)会给我以下数据框:

country value
AUT     NA
AUT     5
AUT     5
AUT     5
GER     5
GER     5
GER     7
GER     7
GER     7
Run Code Online (Sandbox Code Playgroud)

但是,该功能仅应用于按国家/地区划分的各个子集.以下是我需要的输出:

country value
AUT     NA
AUT     5 …
Run Code Online (Sandbox Code Playgroud)

r missing-data dataframe r-factor

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

java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ styleable

我正在使用终端[不是日食].我得到了以下异常错误,而我emulator.debug成功使用并成功安装.但模拟器显示Unfortunatly app has stop.然后我运行$ adb logcat它将显示以下.

java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:107)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.example.trintwo.MainActivity.onCreate(MainActivity.java:19)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

我得到了这个错误,即使我安装了android支持库,我android-support-v7-appcompat.jarandroid/support/v7/appcompat/lib路径中检查了我将如何清除此错误.

android exception missing-data

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

python scikit-learn聚类缺失数据

我希望对缺少列的数据进行聚类.手动执行我会在没有此列的情况下计算缺少列的距离.

使用scikit-learn,无法获取缺失的数据.也没有机会指定用户距离功能.

有没有机会聚集丢失的数据?

示例数据:

n_samples = 1500
noise = 0.05  
X, _ = make_swiss_roll(n_samples, noise)

rnd = np.random.rand(X.shape[0],X.shape[1]) 
X[rnd<0.1] = np.nan
Run Code Online (Sandbox Code Playgroud)

python cluster-analysis missing-data scikit-learn

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