假设我有一个数据框:
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
