Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:以编程方式选择多个列_Python_Pandas - Fatal编程技术网

Python 熊猫:以编程方式选择多个列

Python 熊猫:以编程方式选择多个列,python,pandas,Python,Pandas,现在,我选择多行,其中某些列具有特定值,如下所示: df.loc[(df['col1'] == val1) & (df['col2'] == val2)] 是否有一种方法可以通过编程实现,即以dict形式提供列键/值?大概是这样的: def get_df(cols) df.loc[ (df[k] == v) for k,v in cols.items() ] 但我不知道如何表达“和”。有什么想法吗?您可以从字典中创建一个系列并进行比较: import numpy as np

现在,我选择多行,其中某些列具有特定值,如下所示:

df.loc[(df['col1'] == val1) & (df['col2'] == val2)]
是否有一种方法可以通过编程实现,即以dict形式提供列键/值?大概是这样的:

def get_df(cols)

   df.loc[ (df[k] == v) for k,v in cols.items() ]

但我不知道如何表达“和”。有什么想法吗?

您可以从字典中创建一个系列并进行比较:

import numpy as np
import pandas as pd
np.random.seed(0)

df = pd.DataFrame(np.random.randint(0, 5, (100, 3)), columns = list("ABC"))
cols = {"A": 0, "B": 3, "C": 3}

df[(df == pd.Series(cols)).all(axis=1)]
Out: 
    A  B  C
94  0  3  3
或者,与以下内容一起使用:

df[np.logical_and.reduce([(df[k] == v) for k,v in cols.items()])]

    A  B  C
94  0  3  3