过滤Pandas数据帧的更简洁方法?

时间:2017-03-30 00:32:23

标签: python pandas dataframe lambda

以下代码有效。

df1 =  df.loc[lambda df: df.myfield == 'abc' , ['myfield' ,  'field2', 'field3','field4']]
print df1.iloc[:60]

但是我只想在单个语句中打印出与我的'abc'条件匹配的前60个df条目的选定列,而没有分配给df1然后执行第二个iloc语句的额外步骤。我尝试在我的lambda中添加第二个条件,但无法使其工作。

1 个答案:

答案 0 :(得分:2)

至少,您应该能够将其简化为:

print df.loc[df.myfield == 'abc', ['myfield', 'field2', 'field3', 'field4']].iloc[:60]
通常,我会做类似的事情:

row_selection = df.myfield == 'abc'
col_selection = ['myfield', 'field2', 'field3', 'field4']
print df.loc[row_selection, col_selection].iloc[:60]