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