只是想知道为什么重复行为与NAs一样:
> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE TRUE TRUE FALSE FALSE TRUE
Run Code Online (Sandbox Code Playgroud)
事实上
> NA == NA
[1] NA
Run Code Online (Sandbox Code Playgroud)
有没有办法实现重复标记NAs为假,像这样?
> duplicated(c(NA,NA,NA,1,2,2))
[1] FALSE FALSE FALSE FALSE FALSE TRUE
Run Code Online (Sandbox Code Playgroud) 我有一个数字列表,我把它放入一个numpy数组:
>>> import numpy as np
>>> v=np.array([10.0, 11.0])
Run Code Online (Sandbox Code Playgroud)
然后我想从数组中的每个值中减去一个数字.它可以像numpy数组一样完成:
>>> print v - 1.0
[ 9. 10.]
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的数据通常包含缺失值,表示为None.对于这种数据,我收到此错误:
>>> v=np.array([10.0, 11.0, None])
>>> print v - 1.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
Run Code Online (Sandbox Code Playgroud)
我想为上面的例子得到的是:
[ 9. 10. None]
Run Code Online (Sandbox Code Playgroud)
我怎样才能以简单有效的方式实现它?
我试图在多重估算数据上运行一个多级模型(用Amelia创建); 样本基于群集样本,群组= 24,N = 150.
library("ZeligMultilevel")
ML.model.0 <- zelig(dv~1 + tag(1|group), model="ls.mixed",
data=a.out$imputations)
summary(ML.model.0)
Run Code Online (Sandbox Code Playgroud)
此代码生成以下错误代码:
Error in object[[1]]$result$call :
$ operator not defined for this S4 class
Run Code Online (Sandbox Code Playgroud)
如果我运行OLS回归,它可以工作:
model.0 <- zelig(dv~1, model="ls", data=a.out$imputations)
m.0 <- coef(summary(model.0))
print(m.0, digits = 2)
Value Std. Error t-stat p-value
[1,] 45 0.34 130 2.6e-285
Run Code Online (Sandbox Code Playgroud)
我很高兴提供一个有效的例子.
require(Zelig)
require(Amelia)
require(ZeligMultilevel)
data(freetrade)
length(freetrade$country) #grouping variable
#Imputation of missing data
a.out <- amelia(freetrade, m=5, ts="year", cs="country")
# Models: (1) OLS; (2) multi-level
model.0 <- zelig(polity~1, model="ls", …Run Code Online (Sandbox Code Playgroud) 假设我有一个pandas.DataFrame叫df.df表示不同个体和索引轴的列表示时间,因此(i,j)条目是对时间段i的单独j观察,并且我们可以假设所有数据都是float可能具有NaN值的类型.
就我而言,我有大约14,000列和几百行.
pandas.corr 将给我回到14,000×14,000相关矩阵,它的时间性能对我的应用程序来说很好.
但我还想知道,对于每对个体(j_1,j_2),有多少非空观察进入相关计算,因此我可以隔离数据覆盖率较差的相关单元.
我能想出的最好成绩如下:
not_null_locations = pandas.notnull(df).values.astype(int)
common_obs = pandas.DataFrame(not_null_locations.T.dot(not_null_locations),
columns=df.columns, index=df.columns)
Run Code Online (Sandbox Code Playgroud)
内存占用和速度开始有点问题.
有没有更快的方法来获得共同观察pandas?
gnuplot命令set datafile missing "nan"告诉gnuplot忽略nan数据文件中的数据值.
如何忽略nan和-nan?我在gnuplot中尝试了以下内容,但是第一个语句的效果被下一个覆盖了.
gnuplot> set datafile missing "-nan"
gnuplot> set datafile missing "nan"
Run Code Online (Sandbox Code Playgroud)
有可能某些人grep -v nan在gnuplot命令中嵌入一个,甚至某种正则表达式来排除任何可以想象的非数值数据吗?
我有一个缺少值的数据框:
X Y Z
54 57 57
100 58 58
NA NA NA
NA NA NA
NA NA NA
60 62 56
NA NA NA
NA NA NA
69 62 62
Run Code Online (Sandbox Code Playgroud)
我想从已知值线性地估算NA值,以便数据框看起来:
X Y Z
54 57 57
100 58 58
90 59 57.5
80 60 57
70 61 56.5
60 62 56
63 62 58
66 62 60
69 60 62
Run Code Online (Sandbox Code Playgroud)
谢谢
我需要集群一些数据,我想kmeans,pam和clara与R.
问题是我的数据位于数据框的一列中,并包含NA.
我曾经na.omit()得到我的集群.但是,我如何将它们与原始数据相关联?函数返回没有NA的整数向量,并且它们不保留有关原始位置的任何信息.
有没有一种聪明的方法将聚类与数据框中的原始观察结果联系起来?(或者在存在NA时智能地执行聚类的方法?)
谢谢
我有一个熊猫数据框,其中有几个缺失值。我注意到非缺失值彼此接近。因此,我想通过随机选择非缺失值来估算缺失值。
例如:
import pandas as pd
import random
import numpy as np
foo = pd.DataFrame({'A': [2, 3, np.nan, 5, np.nan], 'B':[np.nan, 4, 2, np.nan, 5]})
foo
A B
0 2 NaN
1 3 4
2 NaN 2
3 5 NaN
4 NaN 5
Run Code Online (Sandbox Code Playgroud)
我想比如foo['A'][2]=2和foo['A'][5]=3
我的熊猫的形状数据框是(6940,154)。我尝试这个
foo['A'] = foo['A'].fillna(random.choice(foo['A'].values.tolist()))
Run Code Online (Sandbox Code Playgroud)
但它不起作用。你能帮我实现吗?最好的祝福。
我pandas.eval在一个缺少数据的布尔系列上使用.
为此,我使用索引器标记非空值,并.loc仅应用于.eval具有非缺失数据的行.
使用表达式应用逻辑非运算符~bool或not(bool)返回-1或-2.
我明白这是因为我的布尔系列由于缺少值而被转换为对象类型,但我想知道:
.eval在具有缺失数据的布尔序列上使用的正确方法是什么?这是一个使用pandas 0.20.3的可重现的例子.
df = pd.DataFrame({'bool': [True, False, None]})
bool
0 True
1 False
2 None
indexer = ~pd.isnull(df['bool'])
0 True
1 True
2 False
Name: bool, dtype: bool
df.loc[indexer].eval('~bool')
0 -2
1 -1
Name: bool, dtype: object
Run Code Online (Sandbox Code Playgroud) 这是我的玩具数据集
df <- tribble(
~x, ~y, ~z,
7, NA, 4,
8, 2, NA,
NA, NA, NA,
NA, 4, 6)
Run Code Online (Sandbox Code Playgroud)
我想NA为每个变量获取一个数据框,其中每个变量只在每列中第一次和最后一次出现的数字NA之间以及第一次出现的数字和最后一行之间的 s数之间。因此,对于此示例,所需的解决方案是
desired_df <- tribble(~vars, ~na_count_between_1st_last_num, ~na_count_between_1st_num_last_row,
"x", 0, 2,
"y", 1, 1,
"z", 2, 2)
Run Code Online (Sandbox Code Playgroud)
如何获得所需的输出?
missing-data ×10
r ×5
python ×4
pandas ×3
na ×2
numpy ×2
boolean ×1
comparison ×1
dataframe ×1
dplyr ×1
duplicates ×1
eval ×1
gnuplot ×1
infinity ×1
k-means ×1
multi-level ×1
nan ×1
r-zelig ×1
regression ×1