如何通过 iloc 进行过滤

Leg*_*ack 3 python dataframe pandas

我有一个有 2 列的数据框。第二列是仅有的几个值之一。我想创建一个返回数据帧的方法,其中仅包含该列具有特定值的行。

我有这个工作与这个代码:

def filterOnName(df1):
    d1columns = df1.columns
    return df1[df1[d1columns[1]] == "Jimmy"]
Run Code Online (Sandbox Code Playgroud)

看起来很复杂不是吗?我想有一个名为 iloc 的 Pandas 方法应该可以稍微清理一下,但我在实现它时遇到了麻烦。你能解释一下我做错了什么吗?

def filterOnName(df1):
    return df1[df1.iloc[1] == "Jimmy"]
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

ayh*_*han 5

第一个参数.iloc是行。要获得第二列,您需要:

df.iloc[:, 1]
Run Code Online (Sandbox Code Playgroud)

其中:表示“所有行”。