python - 索引和删除 DataFrame 列
问题描述
我无法理解为什么我们需要在第一行添加row
. 例如:row['G1']
。
但是在第二行中,当我们删除它们时,我们不使用row['G1']
,而只是放['G1']
.
还有做r['pass'] =
什么?为什么我们需要['pass']
after r
?
代码:
import pandas as pd
r = pd.read_csv("Data.csv", sep = ';')
len(r)
r['pass'] = r.apply(lambda row: 1 if (row['G1'] + row['G2'] + row['G3']) >= 35 else 0, axis=1)
r = r.drop(['G1', 'G2', 'G3'], axis=1)
r.head()
解决方案
您需要了解的第一件事是它r
是一个数据框,并且可以通过执行访问数据框中的列df[column_name]
。因此,r['pass']
意味着您正在添加一个在数据框中命名的新列pass
,r
其中将根据apply
语句中的条件添加值。
使用drop时,当您查看文档时,输入可以是单标签或列表。由于要删除多个列,因此很容易制作要删除的列的列表并在 drop 语法中传递它。
在第二行中,当我们删除它们时,我们不使用 row['G1'],我们只使用 ['G1']
如果您查看DataFrame.drop文档,您会发现它DataFrame
在开头使用了.drop()
. 因此,在这种情况下,它是:r.drop()
。当您这样做时r.drop(['G1', 'G2', 'G3'], axis=1)
,您正在做的是选择要删除的列列表(在这种情况下['G1', 'G2', 'G3']
)。并且axis=1
意味着您要从列中删除值。
查看文档以获取更多信息。
推荐阅读
- docker - 我们可以在使用同一个 docker-compose.yaml 构建多个图像之前启动容器吗?
- sql - 编写查询以按客户购买的产品数量显示客户分布情况
- javascript - 为什么 QML Image 占用这么多内存?减慢申请
- c++ - 使用按顺序遍历成员函数时引发异常(堆栈溢出)的问题
- delphi - 如何检查仍然与 Delphi 10.3 连接的 BLE 设备
- php - 如何在帐单地址结帐框中替换内容
- python - 如何在 python 包装中使用 unicode 字符串用于带有 cython 的 c++ 类?
- python - 通过 TensorFlow 数据集生成器迭代批次
- webstorm - WebStorm 似乎没有理由的错误
- javascript - 节点 JS 应用程序的 Heroku 'H12' 请求超时错误