从数据框中按索引删除行

问题描述 投票:2回答:3

我有一个数组wrong_indexes_train,其中包含我想从数据帧中删除的索引列表:

[0, 63, 151, 469, 1008]

要删除这些索引,我正在尝试这样做:

df_train.drop(wrong_indexes_train)

但是,代码失败并显示错误:

ValueError: labels ['OverallQual' 'GrLivArea' 'GarageCars' 'TotalBsmtSF' 'FullBath'
 'YearBuilt'] not contained in axis

在这里,['OverallQual' 'GrLivArea' 'GarageCars' 'TotalBsmtSF' 'FullBath' 'YearBuilt']是我的数据框列的名称。

我怎么能让数据帧丢弃我指定的索引的整行?

python pandas dataframe
3个回答
4
投票

将其更改为

df_train.drop(wrong_indexes_train,axis=1)

3
投票

如果没有最小 - (非)工作示例,不是100%确定你想要的,但你应该指定一个axis参数。 df.drop返回修改后的DataFrame。如果您想在原地操作,请指定inplace=True

请参阅此符号的行名称(索引):

df = pd.DataFrame({"ones":[1,3,5],
                   "tens":[20, 40, 60]},
                  index=['barb', 'mark', 'ethan'])
df.drop(['barb', 'mark'], axis='rows')

这适用于数字(默认)索引:

df = pd.DataFrame({"ones":[1,3,5],
                   "tens":[20, 40, 60]})
df.drop([0,2], axis='rows')

1
投票

尝试df_train = df_train.reset_index(),然后是df_train.drop(wrong_indexes_train)

我的猜测是df_train目前没有数字索引,而是其中一列['OverallQual''GrLivArea''GarageCars''TotalBsmtSF''FullBath''YownBuilt']作为索引。

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