我有一个数组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']
是我的数据框列的名称。
我怎样才能让数据帧丢弃我指定的索引的整行?
答案 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']作为索引。