假设我有一个像这样的pandas dframe:

Name Nos
Jack [4,2,3,12]
Adam [5,6,4,2,3]
John [1,3,4]


什么是最快的方法(简写代码),当输入为[4,2,3]时,结果应为包含杰克和亚当行的dframe?我尝试在哪里使用,但我不太能找到正确的解决方案。

最佳答案

如果需要将值[4, 2, 3]一起连续出现在列表中,则可以使用以下代码:

input_list = [4, 2, 3]
def func(df, l):
    return df[df['Nos'].astype(str).str.contains(str(l)[1:-1])]
print(func(df, input_list))


如果只想将值放在其中,请使用:

input_list = [4, 2, 3]
def func(df, l):
    return df[df['Nos'].astype(str).str.contains('&'.join(l))]
print(func(df, input_list))

关于python - 在pandas dframe中选择行,其中给定的输入列表是dframe列中列表的子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59871960/

10-10 01:05