gpt4 book ai didi

python - 根据不同的列列表从 DataFrame 中选择行的有效方法

转载 作者:行者123 更新时间:2023-12-01 01:23:36 27 4
gpt4 key购买 nike

假设我们有以下 DataFrame:

dt = {'A': ['a','a','a','a','a','a','b','b','c'],
'B': ['x','x','x','y','y','z','x','z','y'],
'C': [10, 14, 15, 11, 10, 14, 14, 11, 10],
'D': [1, 3, 2, 1, 3, 5, 1, 4, 2]}
df = pd.DataFrame(data=dt)

我想根据字典提取某些行,其中键是列名,值是行值。例如:

d = {'A': 'a', 'B': 'x'}
d = {'A': 'a', 'B': 'y', 'C': 10}
d = {'A': 'b', 'B': 'z', 'C': 11, 'D': 4}

可以使用循环来完成(考虑最后一个字典):

for iCol in d:
df = df[df[iCol] == d[iCol]]
Out[215]:
A B C D
7 b z 11 4

由于 DataFrame 预计会相当大,并且可能有很多列可供选择,因此我正在寻找解决问题的有效方法,而无需使用 for 循环来迭代数据框。

最佳答案

使用以下内容,将字典设为系列:

print(df[(df[list(d)] == pd.Series(d)).all(axis=1)])

输出:

   A  B   C  D
7 b z 11 4

关于python - 根据不同的列列表从 DataFrame 中选择行的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549363/

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