gpt4 book ai didi

python - Pandas :以编程方式选择多列

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:58 24 4
gpt4 key购买 nike

现在,我选择多行,其中某些列以这种方式具有特定值:

df.loc[(df['col1'] == val1) & (df['col2'] == val2)]

有没有办法以编程方式执行此操作,我将列键/值作为字典提供?像这样:

def get_df(cols)

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

但我不确定如何“与”表达式。有什么想法吗?

最佳答案

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

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

或者,使用 np.logical_andreduce :

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

A B C
94 0 3 3

关于python - Pandas :以编程方式选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37178312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com