无法从数据框中删除行

13 浏览
0 Comments

无法从数据框中删除行

我有一个数据集,我在Jupyter Notebook中工作。它是这样的:

表格中的第一行包括列名:Riding(选区)和Filipino Population(菲律宾人口)。

接下来的几行包括具体的数据,每行分别对应不同的选区和对应的菲律宾人口数量。

每次我尝试删除第一行(0行),都会返回一个错误信息,即"KeyError: '[0] not found in axis'"。

为了删除这一行,我使用了以下代码:

pop_filipino2_DF_with_percent.drop([0], axis=1, inplace=True)

我还尝试创建一个新的数据框,使用以下代码:

df_filipino2_clean = pop_filipino2_DF_with_percent.drop([0], axis=1, inplace=True)

但是它也返回了相同的错误信息"KeyError: '[0] not found in axis'"。

我的问题是,如何删除第一行(0行)的数据?

0
0 Comments

出现这个问题的原因是因为你试图删除一列而不是一行。正确的做法是使用以下代码:

pop_filipino2_DF_with_percent.drop([0], inplace=True)

这段代码会从DataFrame中删除索引为0的行。通过设置inplace参数为True,可以直接在原始DataFrame上进行修改。

如果你想删除多行,可以将要删除的行索引放入一个列表中,然后传递给drop方法。例如,如果要删除索引为0、1和2的行,可以使用以下代码:

rows_to_drop = [0, 1, 2]
pop_filipino2_DF_with_percent.drop(rows_to_drop, inplace=True)

这样就可以删除多行了。

请注意,如果你不想在原始DataFrame上进行修改,可以将inplace参数设置为False,这样drop方法将返回一个新的DataFrame,而不是修改原始DataFrame。例如:

new_df = pop_filipino2_DF_with_percent.drop([0], inplace=False)

这样,新的DataFrame将不包含被删除的行。

0