首页 > 解决方案 > 索引和删除 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()

标签: pythonpandasapply

解决方案


您需要了解的第一件事是它r是一个数据框,并且可以通过执行访问数据框中的列df[column_name]。因此,r['pass']意味着您正在添加一个在数据框中命名的新列passr其中将根据apply语句中的条件添加值。

使用drop时,当您查看文档时,输入可以是单标签或列表。由于要删除多个列,因此很容易制作要删除的列的列表并在 drop 语法中传递它。

在第二行中,当我们删除它们时,我们不使用 row['G1'],我们只使用 ['G1']

如果您查看DataFrame.drop文档,您会发现它DataFrame在开头使用了.drop(). 因此,在这种情况下,它是:r.drop()。当您这样做时r.drop(['G1', 'G2', 'G3'], axis=1),您正在做的是选择要删除的列列表(在这种情况下['G1', 'G2', 'G3'])。并且axis=1意味着您要从列中删除值。

查看文档以获取更多信息。


推荐阅读