【发布时间】:2020-10-16 19:17:51
【问题描述】:
我使用 R,但我没有遇到过必须对整个数据帧应用单个比较运算符的情况。在比较 Pandas DataFrame 和 R 数据帧时,我可以看到 df[df > 0] 在 Python 和 R 中的结果不同。
在 Python 中,df[df > 0] 的结果是另一个 DataFrame,而在 R 中,结果是一个向量。
Python 代码:
from numpy.random import randn
np.random.seed(101)
df = pd.DataFrame(randn(5,5), ['A', 'B', 'C', 'D', 'E'], ['V', 'W', 'X' , 'Y', 'Z'])
df[df > 0]
V W X Y Z
A 2.706849839 0.628132709 0.907969446 0.503825754 0.651117948
B NaN NaN 0.605965349 NaN 0.740122057
C 0.528813494 NaN 0.188695309 NaN NaN
D 0.955056509 0.190794322 1.978757324 2.60596728 0.683508886
E 0.302665449 1.693722925 NaN NaN NaN
R 代码:
> set.seed(101)
> df = data.frame(matrix(rnorm(25), 5, 5))
> df
X1 X2 X3 X4 X5
1 -0.3260365 1.1739663 0.5264481 -0.1933380 -0.1637557
2 0.5524619 0.6187899 -0.7948444 -0.8497547 0.7085221
3 -0.6749438 -0.1127343 1.4277555 0.0584655 -0.2679805
4 0.2143595 0.9170283 -1.4668197 -0.8176704 -1.4639218
5 0.3107692 -0.2232594 -0.2366834 -2.0503078 0.7444358
> df[df > 0]
[1] 0.5524619 0.2143595 0.3107692 1.1739663 0.6187899 0.9170283 0.5264481 1.4277555 0.0584655 0.7085221 0.7444358
>
有人可以告诉我 R 和 Python 输出结果的方式有什么意义吗? 此外,在 R 中,是否有一种方法可以获取数据帧作为命令 df[df > 0]
的结果【问题讨论】:
-
非常奇怪的问题。 R 或 python 中的 df[df>0] 到底需要什么?在 R 中,它返回一个向量,因为这些是 data.frame 中 > 0 的元素