gpt4 book ai didi

python - pandas 中的多个多列选择

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:44 26 4
gpt4 key购买 nike

我正在尝试从 pandas 数据框中进行多个多列选择,但似乎找不到一种优雅的方法来完成它。

设置:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 8)),columns=list('ABCDEFGH'))

假设我想查找数据帧中“A”列和“B”列大于 50 的行,我会执行以下操作:

df[['A', 'B']].where(lambda x: x > 50).dropna()

现在假设我还想选择小于 25 的“E”和“F”列。

我该如何实现这个目标?

注意:在实际数据集中,['A', 'B'] 可以是一组 10+ 列的非连续列,而 ['E', 'F'] 可以是一组也可以是一组 10 多个不连续的列。我有每组标准的列名称列表。所以我想避免 ('A' > 50) & ('B' > 50) 因为我必须将 30 多个 bool 条件串在一起。

最佳答案

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(100, 8)),columns=list('ABCDEFGH'))

定义要约束的列:

columns1 = ['A', 'B', 'C', 'E']
columns2 = ['D', 'F']

定义并应用约束

constraint1 = (df[columns1] > 50).all(axis =1)
constraint2 = (df[columns2] < 50).any(axis =1)
print df[constraint1 & constraint2]

注意:

.any(axis=1) 在将约束应用于列时充当 OR 运算符。

.all(axis=1) 将约束应用于列时充当 AND 运算符。

关于python - pandas 中的多个多列选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723629/

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