我需要循环我的df.columns,这样我就可以通过循环动态地将条件应用于我的每一列,我不能在条件中循环我的列名
df:
B1 B2 B3 B4 B5
9 0 5 6 7
8 7 6 4 8
0 9 8 6 6
1 0 7 6 3
condition = [(df['B1'] == 0)| (df['B1'].isnull==False),
(df['B1'] == 8)| (df['B1'].isnull==True),
(df['B1'] == 6)| (df['B1'].isnull==False)]
values = [999,444,555]
我曾经这样做过:
df['B1'] = np.select(condition , values) # Seperately for every column.
我正在努力:
for i in df.columns:
df[i] = np.select(condition, values) # how can i able to loop i in condition, since condition is constant
B1的输出:
B1 B2 B3 B4 B5
999 0 5 6 7
999 7 6 4 8
999 9 8 6 6
999 0 7 6 3
您可以将字典传递给
.eq()
,以检查具有不同值的不同列的相等性:类似地,您可以在
.isna()
之后执行此操作:然后最后将两者与
|
结合起来一种可能的方法是使用^{} ,这将替换一个值,其中一个条件是
True
。如果你循环你的条件和价值观,我想你得到了你需要的您的示例的输出如下
相关问题 更多 >
编程相关推荐