在python中,使用pandas
来对列进行切片,其中data
是数据集,而'pickup_latitude
是行之后的列
data = data[(data['pickup_latitude']<=90) & (data['pickup_latitude']>=-90)]
R中的上述等效项以及对于具有不同取值范围的多列也等效?
答案 0 :(得分:0)
同样的方法也可以,但是您需要在末尾添加逗号以表明您正在索引行:
data = data[(data['pickup_latitude']<=90) & (data['pickup_latitude']>=-90), ]
例如,在内置mtcars
数据上:
> mt = mtcars[mtcars['mpg'] <= 20 & mtcars['mpg'] >= 15, ]
> mt
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
一点解释:在R中,数据帧是列的列表。如果您将方括号与 single 参数一起使用,则假设您是子集列,因为mtcars['mpg']
是mtcars
的mpg列,而data['pickup_latitude']
是data
的pick_latitude列。如果要为行建立索引,则需要使用data[rows, columns]
形式的参数,但是如果缺少rows
或columns
,将全部假定。因此mtcars[1:3, ]
是mtcars
的前三行,所有列。 mtcars[mtcars['mpg'] <= 20 & mtcars['mpg'] >= 15, ]
是mtcars
符合逻辑要求的行,具有所有列。
还有一些便利功能,可让您避免重新键入data$
或data[
,例如,这将起到相同的作用:
subset(data, pickup_latitude <=90 & pickup_latitude >=-90)