2

R 具有 with() 和 within() 函数,它们允许您引用 data.frame 的列,而无需预先添加 data.frame 的名称。这对于避免一些击键和使语句更简单很有用。

大熊猫中有类似的东西吗?

4

1 回答 1

7

没有什么完全等价的(你不能像在 R 中那样将 DataFrame 附加到命名空间),但是你可以使用 0.13 中可用的实验DataFrame.query()方法DataFrame.eval()方法(候选版本应该在本周发布),可以让你执行以下操作:

>>> df = DataFrame({"A": range(10), "B": range(0, 20, 2)})
>>> df
   A   B
0  0   0
1  1   2
2  2   4
3  3   6
4  4   8
5  5  10
6  6  12
7  7  14
8  8  16
9  9  18

>>> df.query("A < 5 and B in (1, 2, 3, 5, 6)")
   A  B
1  1  2
3  3  6
>>> df.eval("A + B")
0     0
1     3
2     6
3     9
4    12
5    15
6    18
7    21
8    24
9    27
dtype: int64

作为奖励,在大帧上,这可以通过 numexpr 加速。

statsmodels 的公式 API还允许您引用 R 中的公式。

于 2013-11-06T02:25:27.567 回答