Skip to main content
 首页 » 编程设计

python之Pandas 有条件地选择多列

2025年05月04日16dflying

假设我有一个数据框:

C1 V1 C2 V2 Cond 
1  2  3  4  X   
5  6  7  8  Y   
9  10 11 12 X 

语句应返回:如果 Cond == X,选择 C1 和 v1,否则选择 C2 和 V2。

输出数据框是这样的:

C  V  
1  2  
7  8 
9  10 

** 编辑:再添加一个要求:列数可以更改但遵循某种命名模式。在这种情况下,选择其中包含“1”的所有列,否则选择包含“2”的列。我认为硬编码解决方案可能行不通。

请您参考如下方法:

DataFrame.where() 的另一个选项:

df[['C1', 'V1']].where(df.Cond == "X", df[['C2', 'V2']].values) 
 
#  C1   V1 
#0  1    2 
#1  7    8 
#2  9   10