862 2006-05-19 6.241603 5.774208
863 2006-05-20 NA NA
864 2006-05-21 NA NA
865 2006-05-22 6.383929 5.906426
866 2006-05-23 6.782068 6.268758
867 2006-05-24 6.534616 6.013767
868 2006-05-25 6.370312 5.856366
869 2006-05-26 6.225175 5.781617
870 2006-05-27 NA NA
Run Code Online (Sandbox Code Playgroud)
我有一个数据框x像上面的一些NA,我想用相邻的非NA值填充,如2006-05-20它将是平均19和22
问题是怎么回事?
我正在为我的临床实践工作11年的大量计费记录数据.相当一部分行缺少转诊医生.但是,使用一些规则我可以很容易地填充它们但不知道如何在R中的data.table中实现它.我知道na.locf
在zoo.table包中有诸如zoo包和自滚动连接之类的东西.我看到的例子过于简单,并没有帮助我.
这里有一些虚构的数据来定位你(作为一个输入ASCII文本表示)
structure(list(patient.first.name = structure(c(1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("John", "Kathy",
"Timothy"), class = "factor"), patient.last.name = structure(c(3L,
3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("Jones",
"Martinez", "Squeal"), class = "factor"), medical.record.nr = c(4563455,
4563455, 4563455, 4563455, 4563455, 2663775, 2663775, 2663775,
2663775, 2663775, 3330956, 3330956, 3330956, 3330956), date.of.service = c(39087,
39112, 39112, 39130, 39228, 39234, …
Run Code Online (Sandbox Code Playgroud) 请看看这个:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, '', 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
});
Run Code Online (Sandbox Code Playgroud)
您会注意到数据中有一个空白值(第二个值),这会导致折线图显示不正确.
这是一个错误吗?
指定缺失值的正确方法是什么,因此折线图中会有间隙?即我不希望线图只是在点1和点3之间画一条线.
非常感谢您生产出优秀的产品!
托尼.
我正在处理像这样的pandas DataFrames:
id x
0 1 10
1 1 20
2 2 100
3 2 200
4 1 NaN
5 2 NaN
6 1 300
7 1 NaN
Run Code Online (Sandbox Code Playgroud)
我想用一个具有相同'id'值的行替换每个NAN'x'和之前的非NAN'x':
id x
0 1 10
1 1 20
2 2 100
3 2 200
4 1 20
5 2 200
6 1 300
7 1 300
Run Code Online (Sandbox Code Playgroud)
有没有一些光滑的方法来做到这一点,而无需手动循环行?
将Pandas DataFrame保存到csv时,某些整数将在浮点数中转换.它发生在浮点列缺少值(np.nan
)的地方.
有一种简单的方法可以避免它吗?(特别是以自动方式 - 我经常处理各种数据类型的许多列.)
例如
import pandas as pd
import numpy as np
df = pd.DataFrame([[1,2],[3,np.nan],[5,6]],
columns=["a","b"],
index=["i_1","i_2","i_3"])
df.to_csv("file.csv")
Run Code Online (Sandbox Code Playgroud)
产量
,a,b
i_1,1,2.0
i_2,3,
i_3,5,6.0
Run Code Online (Sandbox Code Playgroud)
我想得到的是
,a,b
i_1,1,2
i_2,3,
i_3,5,6
Run Code Online (Sandbox Code Playgroud)
编辑:我完全了解支持整数NA - 熊猫警告和陷阱.问题是什么是一个很好的解决方法(特别是如果有许多其他各种类型的列,我不知道哪个"整数"列有缺少值).
我试图通过在我的数据帧中取2列的整数值来对数据帧进行子集化
Subs1<-subset(DATA,DATA[,2][!is.na(DATA[,2])] & DATA[,3][!is.na(DATA[,3])])
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:较长的物体长度不是较短物体长度的倍数.
如何构建由第2列和第3列的非NA值组成的子集?
非常感谢?
我正在尝试使用这些数据运行lme模型:
tot_nochc=runif(10,1,15)
cor_partner=factor(c(1,1,0,1,0,0,0,0,1,0))
age=runif(10,18,75)
agecu=age^3
day=factor(c(1,2,2,3,3,NA,NA,4,4,4))
dt=as.data.frame(cbind(tot_nochc,cor_partner,agecu,day))
attach(dt)
corpart.lme.1=lme(tot_nochc~cor_partner+agecu+cor_partner *agecu,
random = ~cor_partner+agecu+cor_partner *agecu |day,
na.exclude(day))
Run Code Online (Sandbox Code Playgroud)
我收到此错误代码:
na.fail.default出错(列表(cor_partner = c)(1L,1L,2L,1L,1L,1L,:对象中缺少值)
我知道论坛中有类似的问题.但是,在我的情况下:
我可以用na.action排除那些NA值,但我想知道为什么函数正在读取缺失值 - 以准确理解我的数据发生了什么.
我正在努力学习大熊猫,但我对以下内容感到困惑.我想替换NaNs是一个具有行平均值的数据帧.因此,类似的东西df.fillna(df.mean(axis=1))
应该工作,但由于某种原因,它失败了.我错过了什么,我做错了什么?是因为它没有实施; 看到这里的链接
import pandas as pd
import numpy as np
?
pd.__version__
Out[44]:
'0.15.2'
In [45]:
df = pd.DataFrame()
df['c1'] = [1, 2, 3]
df['c2'] = [4, 5, 6]
df['c3'] = [7, np.nan, 9]
df
Out[45]:
c1 c2 c3
0 1 4 7
1 2 5 NaN
2 3 6 9
In [46]:
df.fillna(df.mean(axis=1))
Out[46]:
c1 c2 c3
0 1 4 7
1 2 5 NaN
2 3 6 9
Run Code Online (Sandbox Code Playgroud)
但是这样的事情看起来很好
df.fillna(df.mean(axis=0))
Out[47]:
c1 c2 c3
0 …
Run Code Online (Sandbox Code Playgroud) 我正在使用LSTM处理时间序列预测问题.输入包含多个功能,因此我使用的是多变量LSTM.问题是存在一些缺失值,例如:
Feature 1 Feature 2 ... Feature n
1 2 4 nan
2 5 8 10
3 8 8 5
4 nan 7 7
5 6 nan 12
Run Code Online (Sandbox Code Playgroud)
而不是插入缺失值,这可能会在结果中引入偏差,因为有时在同一个特征上有很多连续的时间戳和缺失值,我想知道是否有办法让LSTM学习缺失值,例如,使用掩蔽层或类似的东西?有人可以向我解释一下处理这个问题的最佳方法是什么?我正在使用Tensorflow和Keras.
我有兴趣指定缺失值的类型.我有不同类型的丢失的数据,我试图将这些值编码为R中缺少,但我正在寻找一个解决方案,我仍然可以区分它们.
假设我有一些看起来像这样的数据,
set.seed(667)
df <- data.frame(a = sample(c("Don't know/Not sure","Unknown","Refused","Blue", "Red", "Green"), 20, rep=TRUE), b = sample(c(1, 2, 3, 77, 88, 99), 10, rep=TRUE), f = round(rnorm(n=10, mean=.90, sd=.08), digits = 2), g = sample(c("C","M","Y","K"), 10, rep=TRUE) ); df
# a b f g
# 1 Unknown 2 0.78 M
# 2 Refused 2 0.87 M
# 3 Red 77 0.82 Y
# 4 Red 99 0.78 Y
# 5 Green 77 0.97 M
# 6 Green 3 0.99 K …
Run Code Online (Sandbox Code Playgroud) missing-data ×10
r ×5
pandas ×3
nan ×2
python ×2
base ×1
csv ×1
data.table ×1
dataframe ×1
error-code ×1
graph ×1
highcharts ×1
imputation ×1
int ×1
keras ×1
line ×1
locf ×1
lstm ×1
nlme ×1
subset ×1
tensorflow ×1
zoo ×1