我想删除此数据框中的行:
a)包含NA
所有列的s.下面是我的示例数据框.
gene hsap mmul mmus rnor cfam
1 ENSG00000208234 0 NA NA NA NA
2 ENSG00000199674 0 2 2 2 2
3 ENSG00000221622 0 NA NA NA NA
4 ENSG00000207604 0 NA NA 1 2
5 ENSG00000207431 0 NA NA NA NA
6 ENSG00000221312 0 1 2 3 2
Run Code Online (Sandbox Code Playgroud)
基本上,我想获得如下的数据框.
gene hsap mmul mmus rnor cfam
2 ENSG00000199674 0 2 2 2 2
6 ENSG00000221312 0 1 2 3 2
Run Code Online (Sandbox Code Playgroud)
b)只在某些列中包含NA
s …
我有一个数据框,有些列有NA
值.
如何NA
用零替换这些值?
我有一个巨大的向量,它有几个NA
值,我试图找到该向量中的最大值(向量是所有数字),但由于NA
值,我不能这样做.
如何删除NA
值以便我可以计算最大值?
这是我编写的一小段代码,用于报告数据框中缺少值的变量.我正在尝试一种更优雅的方式来做这个,也许会返回一个data.frame,但是我被困住了:
for (Var in names(airquality)) {
missing <- sum(is.na(airquality[,Var]))
if (missing > 0) {
print(c(Var,missing))
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我正在处理包含数十到数百个变量的data.frames,因此我们只报告缺少值的变量是关键.
以下代码引发了一个KeyError
异常:
addr_list_formatted = []
addr_list_idx = 0
for addr in addr_list: # addr_list is a list
addr_list_idx = addr_list_idx + 1
addr_list_formatted.append("""
"{0}"
{
"gamedir" "str"
"address" "{1}"
}
""".format(addr_list_idx, addr))
Run Code Online (Sandbox Code Playgroud)
为什么?
我正在使用Python 3.1.
以下代码不起作用.
import pandas as pd
import numpy as np
df=pd.DataFrame(['ONE','Two', np.nan],columns=['x'])
xLower = df["x"].map(lambda x: x.lower())
Run Code Online (Sandbox Code Playgroud)
如何调整它以获得xLower = ['one','two',np.nan]?效率很重要,因为真正的数据框架是巨大的.
我正在处理一个大型数据集,其中一些行包含NA,另一些包含空白:
df <- data.frame(ID = c(1:7),
home_pc = c("","CB4 2DT", "NE5 7TH", "BY5 8IB", "DH4 6PB","MP9 7GH","KN4 5GH"),
start_pc = c(NA,"Home", "FC5 7YH","Home", "CB3 5TH", "BV6 5PB",NA),
end_pc = c(NA,"CB5 4FG","Home","","Home","",NA))
Run Code Online (Sandbox Code Playgroud)
如何一次性删除NA和空白(在start_pc和end_pc列中)?我过去曾用过:
df<- df[-which(is.na(df$start_pc)), ]
Run Code Online (Sandbox Code Playgroud)
...删除NA - 是否有类似的命令来删除空白?
比方说我有:
action = '{bond}, {james} {bond}'.format(bond='bond', james='james')
Run Code Online (Sandbox Code Playgroud)
这个输出:
'bond, james bond'
Run Code Online (Sandbox Code Playgroud)
接下来我们有:
action = '{bond}, {james} {bond}'.format(bond='bond')
Run Code Online (Sandbox Code Playgroud)
这将输出:
KeyError: 'james'
Run Code Online (Sandbox Code Playgroud)
是否有一些解决方法可以防止此错误发生,例如:
我有一个名为SMOKE的因子,其级别为"Y"和"N".丢失的值被替换为NA(从初始级别"NULL").但是,当我查看因素时,我会得到这样的结果:
head(SMOKE)
N N <NA> Y Y N
Levels: Y N
Run Code Online (Sandbox Code Playgroud)
为什么R显示NA
为<NA>
?并且有区别吗?
我是R的新手但是已经转向它来解决我正在尝试处理的大型数据集的问题.目前我有4列数据(Y值)设置为分钟间隔时间戳(月/日/年小时:分钟)(X值),如下所示:
timestamp tr tt sr st
1 9/1/01 0:00 1.018269e+02 -312.8622 -1959.393 4959.828
2 9/1/01 0:01 1.023567e+02 -313.0002 -1957.755 4958.935
3 9/1/01 0:02 1.018857e+02 -313.9406 -1956.799 4959.938
4 9/1/01 0:03 1.025463e+02 -310.9261 -1957.347 4961.095
5 9/1/01 0:04 1.010228e+02 -311.5469 -1957.786 4959.078
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是缺少一些时间戳值 - 例如,在9/1/01 0:13和9/1/01 0:27之间可能存在间隙,并且这些间隙在数据集中是不规则的.我需要将这些系列中的几个放入同一个数据库中,因为每个系列的缺失值不同,所以日期当前并不对齐每一行.
我想为这些丢失的时间戳生成行,并用空值(没有数据,不是零)填充Y列,这样我就有了一个连续的时间序列.
老实说,我不太确定从哪里开始(在我学习之前没有真正使用过R!)但是任何帮助都会非常感激.到目前为止,我已经安装了chron和zoo,因为看起来它们可能很有用.
谢谢!
missing-data ×10
r ×7
dataframe ×4
python ×3
na ×2
string ×2
defaultdict ×1
delimiter ×1
filter ×1
imputation ×1
max ×1
min ×1
pandas ×1
r-faq ×1
syntax ×1
time-series ×1