从数据框

时间:2017-12-21 21:27:26

标签: python pandas dataframe

我有一个数组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']是我的数据框列的名称。

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

3 个答案:

答案 0 :(得分:4)

将其更改为

df_train.drop(wrong_indexes_train,axis=1)

答案 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')

答案 2 :(得分:1)

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

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