首页 > 解决方案 > 将零设置为第一行包含 1 的那些列

问题描述

我有数据集:

id 1 2 3 
1  1 0 1
2  1 1 1
3  0 1 1

将零设置为第一行包含一的列的最快方法是什么,以便输出如下所示:

id 1 2 3 
1  0 0 0
2  0 1 0
3  0 1 0

标签: pythonpandas

解决方案


你可以试试:

df.loc[:, df.columns[df.iloc[0].to_numpy(bool)]] = 0
df

输出:

    1  2  3
id         
1   0  0  0
2   0  1  0
3   0  1  0

用于iloc选择第一行,然后使用to_numpy布尔值的 dtype 将这些值转换为 numpy 数组。

接下来,在数据框列标题上使用布尔索引来确定使用哪些列将所有值设置为零loc


推荐阅读