标签: missing-data

如何为时间序列中的缺失数据创建"NA"

我有几个数据文件,如下所示:

X code year month day pp  
1 4515 1953     6   1  0  
2 4515 1953     6   2  0  
3 4515 1953     6   3  0  
4 4515 1953     6   4  0  
5 4515 1953     6   5  3.5
Run Code Online (Sandbox Code Playgroud)

有时会丢失数据,但我没有NA,行根本就不存在.我需要在数据丢失时创建NA.我虽然可以通过将其转换为动物园对象来确定何时发生,并检查严格的规律性(我之前从未使用过动物园),但我使用以下代码:

z.date<-paste(CET$year, CET$month, CET$day, sep="/")
z <- read.zoo(CET,  order.by= z.date )
reg<-is.regular(z, strict = TRUE)
Run Code Online (Sandbox Code Playgroud)

但答案总是如此!

谁能告诉我为什么不工作?或者甚至更好,告诉我一种在数据丢失时创建NA的方法(有或没有动物园包)?

谢谢

r time-series missing-data

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

熊猫滚动适用于缺少数据

我想对丢失的数据进行滚动计算.

示例代码:( 为了简单起见,我给出了滚动总和的示例,但我想做一些更通用的事情.)

foo = lambda z: z[pandas.notnull(z)].sum() 
x = np.arange(10, dtype="float")    
x[6] = np.NaN
x2 = pandas.Series(x)    
pandas.rolling_apply(x2, 3, foo)
Run Code Online (Sandbox Code Playgroud)

产生:

0   NaN    
1   NaN
2     3    
3     6    
4     9    
5    12    
6   NaN    
7   NaN    
8   NaN    
9    24
Run Code Online (Sandbox Code Playgroud)

我认为在"滚动"期间,计算中忽略了缺少数据的窗口.我希望得到一个结果:

0   NaN    
1   NaN    
2     3    
3     6    
4     9    
5    12    
6     9    
7    12    
8    15    
9    24
Run Code Online (Sandbox Code Playgroud)

python missing-data pandas rolling-computation

10
推荐指数
1
解决办法
6957
查看次数

R因子NA vs <NA>

我有以下数据框:

df1 <- data.frame(id = 1:20, fact1 = factor(rep(c('abc','def','NA',''),5)))
df1
   id fact1
1   1   abc
2   2   def
3   3    NA
4   4      
5   5   abc
6   6   def
7   7    NA
8   8      
9   9   abc
10 10   def
11 11    NA
12 12      
13 13   abc
14 14   def
15 15    NA
16 16      
17 17   abc
18 18   def
19 19    NA
20 20      
Run Code Online (Sandbox Code Playgroud)

我正在尝试将所有缺失的值(''和NA')标准化为NA.但是当我使用它时:

df1[df1 == ''] <- NA
Run Code Online (Sandbox Code Playgroud)

似乎有两类NA.

df1
   id fact1
1   1   abc …
Run Code Online (Sandbox Code Playgroud)

r missing-data na

10
推荐指数
1
解决办法
8158
查看次数

识别data.frame中仅包含R中的NA值的行

我有data.frame34个序数和NA变量的15,000个观测值.我正在为市场细分研究执行聚类,并且需要仅NAs删除的行.取出userID后,我收到一条错误消息,说明只NAs在集群之前省略了2099行.

我找到了一个删除所有NA值的行的链接,但我需要确定2099行中的哪一行具有所有NA值.这里讨论的链接删除了包含所有NA值的:在data.frame中删除带有NA的行

以下是六个变量中前五个观测值的样本:

> head(Store2df, n=5)
  RowNo      Age Gender HouseholdIncome MaritalStatus PresenceofChildren
1     1     <NA>   Male            <NA>          <NA>               <NA>
2     2    45-54 Female            <NA>          <NA>               <NA>
3     3     <NA>   <NA>            <NA>          <NA>               <NA>
4     4     <NA>   <NA>            <NA>          <NA>               <NA>
5     5    45-54 Female        75k-100k       Married                Yes
#Making a vector
> Vector1 <- Store2df$RowNo 
#Taking out RowNo column
> Store2df$RowNo <- NULL
Run Code Online (Sandbox Code Playgroud)

编辑:我把结果放在一个对象,但发现代码创建了一个额外的列.单击RStudio的环境,创建了一个名为row.names的额外列,用原始行名称标记每一行.删除了几千行,新列标记了具有旧行号的新行.但是当看到新对象的头部时,我没有看到行标签.为什么row.names标签在环境中显示,但在我查看头部时却不显示?

#Remove …
Run Code Online (Sandbox Code Playgroud)

r missing-data

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

将缺少的时间行插入数据帧

假设我有一个数据帧:

df <- data.frame(group = c('A','A','A','B','B','B'), 
                 time = c(1,2,4,1,2,3),
                 data = c(5,6,7,8,9,10))
Run Code Online (Sandbox Code Playgroud)

我想要做的是将数据插入到序列中缺少的数据框中.所以在上面的例子中,我缺少time组A的= 3的数据,time组B的= 4的数据.我基本上想把0放在data列的位置.

我该如何添加这些额外的行?

目标是:

df <- data.frame(group = c('A','A','A','A','B','B','B','B'), 
                 time = c(1,2,3,4,1,2,3,4),
                 data = c(5,6,0,7,8,9,10,0))
Run Code Online (Sandbox Code Playgroud)

我的真实数据是几千个数据点,因此无法手动执行此操作.

r time-series missing-data

10
推荐指数
1
解决办法
1479
查看次数

在矢量中生成随机长度NA的随机序列

我想在向量中生成缺失值,以便将缺失值按顺序分组,以模拟不同长度的缺失数据的时段.

假设我有一个10 000个值的向量,我想在向量中的随机位置生成12个NA序列,每个序列的随机长度L在1到144之间(144个模拟在时间步长10分钟时缺失值为2天).序列不得重叠.

我怎样才能做到这一点?谢谢.

我试过结合lapplyseq没有成功.

具有3个不同序列的预期输出示例:

# 1 2 3 5 2 NA NA 5 4 6 8 9 10 11 NA NA NA NA NA NA 5 2 NA NA NA...
Run Code Online (Sandbox Code Playgroud)

编辑

我正在处理季节性时间序列,因此NA必须覆盖值而不是作为新元素插入.

random r vector missing-data seq

10
推荐指数
3
解决办法
795
查看次数

如何在R中的回归中处理残差中的NA?

所以我在R NA中的lm横截面回归的残差中遇到了一些问题.

问题本身不是NA价值观,而是R呈现它们的方式.

例如:

test$residuals
#          1          2          4          5 
#  0.2757677 -0.5772193 -5.3061303  4.5102816 
test$residuals[3]
#        4 
# -5.30613 
Run Code Online (Sandbox Code Playgroud)

在这个简单的例子中,一个NA值会使其中一个残差丢失.当我提取残差时,我可以清楚地看到第三个索引丢失.到目前为止这么好,这里没有抱怨.问题是相应的数字向量现在是一个较短的项目,所以第三个索引实际上是第四个.我怎样才能让R返回这些残差,即明确显示NA而不是跳过索引?

test$residuals
#          1          2          3          4          5 
#  0.2757677 -0.5772193         NA -5.3061303  4.5102816
Run Code Online (Sandbox Code Playgroud)

我需要跟踪所有个体残差,这样如果我能用这种方式提取它们会让我的生活更轻松.

regression r missing-data

9
推荐指数
2
解决办法
9424
查看次数

在Python中的一些Dataframe列上使用Imputer

我正在学习如何在Python上使用Imputer.

这是我的代码:

df=pd.DataFrame([["XXL", 8, "black", "class 1", 22],
["L", np.nan, "gray", "class 2", 20],
["XL", 10, "blue", "class 2", 19],
["M", np.nan, "orange", "class 1", 17],
["M", 11, "green", "class 3", np.nan],
["M", 7, "red", "class 1", 22]])

df.columns=["size", "price", "color", "class", "boh"]

from sklearn.preprocessing import Imputer

imp=Imputer(missing_values="NaN", strategy="mean" )
imp.fit(df["price"])

df["price"]=imp.transform(df["price"])
Run Code Online (Sandbox Code Playgroud)

但是,这会引发以下错误:ValueError:值的长度与索引的长度不匹配

我的代码有什么问题???

谢谢你的帮助

python missing-data scikit-learn imputation

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

在熊猫数据帧中随机插入NA的值

如何np.nan在DataFrame中随机插入?假设我想在DataFrame中使用10%的空值.

我的数据如下:

df = pd.DataFrame(np.random.randn(5, 3), 
                  index=['a', 'b', 'c', 'd', 'e'],
                  columns=['one', 'two', 'three'])

        one       two     three
a  0.695132  1.044791 -1.059536
b -1.075105  0.825776  1.899795
c -0.678980  0.051959 -0.691405
d -0.182928  1.455268 -1.032353
e  0.205094  0.714192 -0.938242
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来插入空值?

python numpy missing-data pandas

9
推荐指数
2
解决办法
5580
查看次数

熊猫:如何用groupby的平均值填充空值?

我有一个数据集将丢失一些看起来像这样的数据:

id    category     value
1     A            NaN
2     B            NaN
3     A            10.5
4     C            NaN
5     A            2.0
6     B            1.0
Run Code Online (Sandbox Code Playgroud)

我需要填写空值来使用模型中的数据.每次类别第一次出现时,它都是NULL.我想要的方法是对类似的情况AB具有多个值的情况用该类别的平均值替换空值.对于C仅出现一次的类别,只需填写其余数据的平均值即可.

我知道我可以简单地执行此操作C以获得所有行的平均值,但我仍然试图为A和B执行分类方法并替换空值.

df['value'] = df['value'].fillna(df['value'].mean()) 
Run Code Online (Sandbox Code Playgroud)

我需要最终的df是这样的

id    category     value
1     A            6.25
2     B            1.0
3     A            10.5
4     C            4.15
5     A            2.0
6     B            1.0
Run Code Online (Sandbox Code Playgroud)

python missing-data pandas imputation

9
推荐指数
2
解决办法
5925
查看次数