小编典典

使用pandas dataframe.query()选择列

sql

在该文档dataframe.query()非常 简洁http://pandas.pydata.org/pandas-
docs/stable/generated/pandas.DataFrame.query.html。我也无法通过网络搜索找到投影的示例。

因此,我尝试仅提供列名:这给出了语法错误。同样地键入内容select,然后键入列名称。那么..该怎么做?


阅读 271

收藏
2021-03-23

共1个答案

小编典典

玩弄了一会儿,并通过阅读后的源代码DataFrame.query,我不能想出一个办法做到这一点。

如果不是不可能的话,显然至少是强烈建议不要这样做。当这个问题出现在github上时,多产的Pandas dev / maintainerjreback建议df.eval()用于选择列和df.query()对行进行过滤


更新:

javadba指出的返回值eval不是数据帧。例如,充实jreback的示例更多…

df.eval('A')

返回熊猫系列,但是

df.eval(['A', 'B'])

不返回DataFrame,而是返回(Pandas系列的)列表。

因此,看起来最终保持灵活性以对行和列进行过滤的最佳方法是使用iloc/ loc,例如

df.loc[0:4, ['A', 'C']]

输出

          A         C
0 -0.497163 -0.046484
1  1.331614  0.741711
2  1.046903 -2.511548
3  0.314644 -0.526187
4 -0.061883 -0.615978
2021-03-23