【发布时间】:2013-09-02 11:34:57
【问题描述】:
假设我有一个像这样的DataFrame,
df = pd.DataFrame([['x', 1, 2], ['x', 1, 3], ['y', 2, 2]],
columns=['a', 'b', 'c'])
要选择c == 2 和a == 'x' 所在的所有行,我可以这样做,
df[(df['a'] == 'x') & (df['c'] == 2)]
或者我可以通过制作临时变量来迭代优化,
df1 = df[df['a'] == 'x']
df2 = df1[df1['c'] == 2]
有没有办法对行进行迭代优化?
(
df
.refine(lambda row: row['a'] == 'x') # this method doesn't exist
.refine(lambda row: row['c'] == 2)
)
【问题讨论】: