繁体   English   中英

有没有办法在pandas DataFrame中搜索列中的2个特定数字并返回索引(如果存在)?

[英]Is there a way to 'search' in a pandas DataFrame for 2 specific numbers in columns and return the index if it exists?

我使用pandas制作了一个DataFrame,想知道是否有办法在特定列的行中“搜索”2个特定数字,然后返回该行

例如

例如

如果a = 4且b = 6则返回1(索引)

或者如果b = 5且c = 2则返回2(指数)

或者在a = 2和b = 1中搜索没有返回任何内容。 (因为这不存在)

谢谢!

print(df.loc[(df["A"] == 4) & (df["B"] == 6)].index[0])

在一个功能:

def pairs(df, k1,k2, a, b):
    check = df.loc[(df[k1] == a) & (df[k2] == b)]
    return None if check.empty else check.index[0]

在你的df上运行它:

In [5]: pairs(df,"A","B",4,6)
Out[5]: 1

In [6]: pairs(df,"B","C",5,2 )
Out[6]: 2

In [7]: print(pairs(df,"A","B",2,1))
None

如果您希望所有索引都使用index.tolist:

def pairs(df, k1,k2, a, b):
    check = df.loc[(df[k1] == a) & (df[k2] == b)]
    return None if check.empty else check.index.tolist()

可能不是最有效的方式,所以请随时纠正我。

def find(a,b):

n = 0 
while n < len(df.index):
    if df.iloc[n]['a'] == a and df.iloc[n]['b'] == b:
        print n
    n += 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM