python - 将零设置为第一行包含 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
解决方案
你可以试试:
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
。
推荐阅读
- html - 最初将宽度设置为适合内容时,CSS宽度过渡不起作用
- vue.js - 如何在 VueJS 中连接/修改道具
- junit - 与 SPOCK 并行运行 ST
- .net - Intuit Quickbooks API - .NET 的身份验证问题
- ruby-on-rails - Rails 6 ActionView::MissingTemplate 缺少模板错误/500
- r - 在 R 中将多个 Csv 文件导入为数据框
- java - Jenkins BUILD_LOG_REGEX(emailext 插件)不匹配多行(dotall)
- ios - 通过 CLI 添加 Xcode Github 帐户
- angularjs - 如何在 Visual Studio 2019 中安装 Typescript 2.2
- android - Hilt Worker 未启动。当我只为工作构造函数使用默认参数时工作正常,当我添加第三个参数时它会失败