我正在尝试删除给定列具有该行的NA的数据框中的行。例如,采用以下数据框
ID# Name Sales Price
1 NA 15 34
2 Jay NA 52
3 Roy NA 21
4 NA 56 NA
5 Jake 60 20
Run Code Online (Sandbox Code Playgroud)
我想删除名称列为NA的所有行。因此,我将得到一个如下所示的数据框:
ID# Name Sales Price
2 Jay NA 52
3 Roy NA 21
5 Jake 60 20
Run Code Online (Sandbox Code Playgroud)
我正在尝试new_df <-na.omit(df [,“ Name”]),但这不起作用(不确定原因)
我有以下pandas数据框,我想用D列中的值以行的方式填充AC列中的NaN。是否有一种明确的方法来执行此操作,因此我可以定义所有NaN都应以行为单位D列中的值?我找不到在fillna()中显式执行此操作的方法。
请注意,还有其他列EZ,它们具有自己的NaN,并且可能具有其他用于填写NaN的规则,因此请不要更改。
A B C D E
158 158 158 177 ...
158 158 158 177 ...
NaN NaN NaN 177 ...
158 158 158 177 ...
NaN NaN NaN 177 ...
Run Code Online (Sandbox Code Playgroud)
仅对AC列具有此功能:
A B C D E
158 158 158 177 ...
158 158 158 177 ...
177 177 177 177 ...
158 158 158 177 ...
177 177 177 177 ...
Run Code Online (Sandbox Code Playgroud)
谢谢。
我想一次测试多个不等式,即
if (a < b < c < ...)
Run Code Online (Sandbox Code Playgroud)
当所有值都存在时,这很好.但是,有时一个或多个要比较的变量的数值可能会丢失/未知; 我的上下文中的正确行为是假设满足相关的不等式.假设我None在值未知时分配特殊值:我想从<运营商(或替代方案)获得的行为是:
>>> a = 1; b = 2; c = 3
>>> a < b < c # this works fine, obviously
True
>>> b = None
>>> a < b < c # would like this to return True
False
Run Code Online (Sandbox Code Playgroud)
所以我想知道True如果一个变量真的比另一个变量小,或者如果缺少一个变量(取任何特定的预先确定的非数值),或者两个变量都丢失了,我想能够串联比较起来一气呵成即a < b < c < ...
我也想和这样做<=,以及<.
谢谢
我试图用R中的ARIMA模型计算时间序列中的缺失值.我尝试了这段代码,但没有成功.
x <- AirPassengers
x[90:100] <- NA
fit <- auto.arima(x)
fitted(fit)[90:100] ## this is giving me NAs
plot(x)
lines(fitted(fit), col="red")
Run Code Online (Sandbox Code Playgroud)
拟合模型不会影响缺失值.有关如何做到这一点的任何想法?
我的数据框中有一个日期列,其中包含一些 NA 值。我正在尝试使用该命令将此 NA 值替换为空白,df$FirstDate[is.na(df$FirstDate)] <- " "
但出现错误
charToDate(x) 中的错误:字符串不是标准的明确格式
不确定如何修复此错误。非常感谢有关此主题的任何帮助。
这是dput日期列的输出
df = structure(c(NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), class = "Date")
Run Code Online (Sandbox Code Playgroud) 让 x 是定义为(在 Scala 中)的两列字符串的数据框
case class Pair(X: String, Y: String)
val x = sqlContext.createDataFrame(Seq(
Pair("u1", "1"),
Pair("u2", "wrong value"),
Pair("u3", "5"),
Pair("u4", "2")
))
Run Code Online (Sandbox Code Playgroud)
我想清理这个数据框,使第二列的每个值都是
我在考虑使用 udf 函数
val stringToInt = udf[Int, String](x => try {
x.toInt
} catch {
case e: Exception => null
})
x.withColumn("Y", stringToInt(x("Y")))
Run Code Online (Sandbox Code Playgroud)
...但 null 不是字符串,编译器拒绝它。请问有什么解决办法?只要我可以清理我的数据框,完全不同的方法也可以
scala user-defined-functions missing-data dataframe apache-spark
我是 Python 的新手。我想找出数据框中哪一列的缺失值最大。假设我们有 5 行 1000 列。
例如
C1 C2 ... C1000
10 21 ... NaN
NaN 45 ... 29
15 21 ... NaN
21 NaN ... 27
61 NaN ... NaN
Run Code Online (Sandbox Code Playgroud)
C1000 具有最大缺失值。所以我的代码应该返回列名“C1000”
我正在使用 Rattle 包进行一些数据清理,并且我正在考虑数据集中的第一个变量 X。它报告说,当我在第一个选项卡“数据”选项卡中执行操作时,我得到了数据集的一些基本信息,它说变量 X 有 1243 个缺失值。这也是我使用sum(is.na(my_df[,1])).
在下一个选项卡“探索”选项卡上,当我选中“摘要”时,它现在说我在变量 X 中只有 942 个 NA。
我如何理解这些不同的数字?我手动浏览了一下我的数据集并查看了一些具有 NA 的行,这些 NA 看起来都一样(我知道有时有不同类型的 NA)。
(附带问题:sum(is.na(my_df[,1]), na.rm = FALSE)而且sum(is.na(my_df[,1]),na.rm = TRUE)两者都产生相同的数字 1243,为什么?我原以为会有一个给我length(my_df[,1])-1243。)
编辑这是有这个问题的数据集:https : //wetransfer.com/downloads/cf454b2c12857a4e3770102a7222422f20171019153755/516fb0。
其中的数字略有不同,而不是 1243,根据 Rattle() 中的“数据”选项卡(或等效地,根据summary(ten_df)),我们有 88 个 NA,根据选中“摘要”选项卡的“探索”有 62 个 NA。
但是现在我怀疑我的数据集坏了,因为在上传完整的数据集之前,我本来只想上传一个说明性的专栏。但是当我执行
ten_df = read.csv("ten.csv",sep=";")
my_df = as.data.frame(ten_df[,3])
Run Code Online (Sandbox Code Playgroud)
由于我想查看第三列,var2并且my_df是我最初想要上传的内容,因此最后一个命令返回错误
Warning messages:
1: In rep(no, length.out = length(ans)) :
'x' is NULL so the result …Run Code Online (Sandbox Code Playgroud) 我正在使用 pykalman 模块中的 KalmanFilter 并想知道它如何处理丢失的观察结果。根据文档:
在现实世界的系统中,传感器偶尔出现故障是很常见的。卡尔曼滤波器、卡尔曼平滑器和 EM 算法都可以处理这种情况。要使用它,只需在缺失的时间步长处对测量应用 NumPy 掩码:
from numpy import ma X = ma.array([1,2,3]) X 1 = ma.masked # 在时间步长 1 隐藏测量 kf.em(X).smooth(X)
我们可以平滑输入时间序列。由于这是一个“附加”功能,我认为它不是自动完成的;那么在变量中有 NaN 时的默认方法是什么?
这里解释了可能发生的理论方法;这也是pykalman所做的吗(在我看来这真的很棒):
Python 包Fancyimpute提供了几种方法来估算 Python 中的缺失值。该文档提供了以下示例:
# X is the complete data matrix
# X_incomplete has the same values as X except a subset have been replace with NaN
# Model each feature with missing values as a function of other features, and
# use that estimate for imputation.
X_filled_ii = IterativeImputer().fit_transform(X_incomplete)
Run Code Online (Sandbox Code Playgroud)
当将插补方法应用于数据集时,这很有效X。但是如果需要training/test拆分呢?一次
X_train_filled = IterativeImputer().fit_transform(X_train_incomplete)
Run Code Online (Sandbox Code Playgroud)
被调用,我如何估算测试集并创建X_test_filled?测试集需要使用来自训练集的信息进行估算。我想IterativeImputer()应该返回和对象可以适合X_test_incomplete。那可能吗?
请注意,对整个数据集进行插补然后拆分为训练和测试集是不正确的。
missing-data ×10
r ×4
python ×3
dataframe ×2
pandas ×2
apache-spark ×1
date ×1
fancyimpute ×1
function ×1
imputation ×1
inequalities ×1
na ×1
numpy ×1
pykalman ×1
python-3.x ×1
rattle ×1
scala ×1
smoothing ×1
time-series ×1