在该文档dataframe.query()是 非常 简洁http://pandas.pydata.org/pandas- docs/stable/generated/pandas.DataFrame.query.html。我也无法通过网络搜索找到投影的示例。
dataframe.query()
因此,我尝试仅提供列名:这给出了语法错误。同样地键入内容select,然后键入列名称。那么..该怎么做?
select
玩弄了一会儿,并通过阅读后的源代码的DataFrame.query,我不能想出一个办法做到这一点。
DataFrame.query
如果不是不可能的话,显然至少是强烈建议不要这样做。当这个问题出现在github上时,多产的Pandas dev / maintainerjreback建议df.eval()用于选择列和df.query()对行进行过滤。
df.eval()
df.query()
更新:
javadba指出的返回值eval不是数据帧。例如,充实jreback的示例更多…
eval
df.eval('A')
返回熊猫系列,但是
df.eval(['A', 'B'])
不返回DataFrame,而是返回(Pandas系列的)列表。
因此,看起来最终保持灵活性以对行和列进行过滤的最佳方法是使用iloc/ loc,例如
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