对DataFrame列进行索引和删除。

问题描述 投票:-2回答:1

我不明白为什么在第一行要加上 row. 例如: : row['G1'].

然而在第二行中,当我们要删除它们时,我们没有使用 row['G1'],我们只是把 ['G1'].

另外,什么是 r['pass'] = 做什么?为什么我们需要 ['pass'] 之后 r?

代码:我不明白为什么在第一行我们需要添加 row。

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()
python pandas apply
1个回答
1
投票

首先你需要理解的是 r 是一个数据框,数据框中的列可以通过以下操作访问 df[column_name]. 所以.., r['pass'] 意味着您正在添加一个名为 pass 在你的数据框架中 r 的条件下,将其数值添加到 apply 语句。

当使用 ,当你看到文档时,输入可以是单列,也可以是列表。由于,要丢弃多列,所以很简单,把要丢弃的列列成一个列表,然后用丢弃语法传递。

在第二行中,当我们在放弃它们时,我们不用row['G1'],我们只把['G1']

如果你看一下 DataFrame.drop 文档,你会发现它使用了 DataFrame 开头 .drop(). 所以,在这种情况下,它是: r.drop(). 当你做 r.drop(['G1', 'G2', 'G3'], axis=1)你要做的是选择你要删除的列列表(在这种情况下是 ['G1', 'G2', 'G3']). 而且 axis=1 意味着你想从列中删除这些值。

更多信息请看文档。

© www.soinside.com 2019 - 2024. All rights reserved.