Python 从dataframe按索引删除行
我有一个数组Python 从dataframe按索引删除行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数组错误的索引\u train,其中包含我要从数据帧中删除的索引列表: [0, 63, 151, 469, 1008] 要删除这些索引,我尝试以下操作: df_train.drop(wrong_indexes_train) 但是,代码失败,出现以下错误: ValueError: labels ['OverallQual' 'GrLivArea' 'GarageCars' 'TotalBsmtSF' 'FullBath' 'YearBuilt'] not contained in a
错误的索引\u 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''YearBuild']
是我的数据帧列的名称
我怎么能让数据帧删除我指定的所有索引行呢?将其更改为
df_train.drop(wrong_indexes_train,axis=1)
如果没有一个最小的(非)工作示例,就不能100%确定您想要什么,但您应该指定一个
轴
参数df.drop
返回修改后的数据帧
。如果要就地操作,请指定inplace=True
有关符号行名称(索引),请参见以下内容:
对于数字(默认)索引:
试一试
接
df_train.drop(wrong_indexes_train)
我的猜测是,
df\u train
目前没有数字索引,而是[“总体质量”、“GrLivArea”、“车库车”、“总BSMTSF”、“全浴室”、“年建成”]
列中的一列用作索引。看看这个。“同时指定标签和索引或列将引发ValueError。”实际上,它是axis=1
,因为我删除的是行,而不是列,但我在查看您的答案时发现了这一点。这是我最初得到的结果,然后在文档中另有说明后对其进行了编辑。很高兴我能帮忙。axis:int或axis name是否从索引(0/‘index’)或列(1/‘columns’)中删除标签。我认为drop(rowname)将删除row=rowname。轴=1表示列。这是什么?上面看起来有点混乱;axis=1确实会删除列,因此axis=0或axis='index'将是删除行的方式。正确的方法,但是需要根据用例正确地设置这个参数。请考虑编辑这个来添加代码块,它将极大地提高可读性。索引是指行,而不是列。
df = pd.DataFrame({"ones":[1,3,5],
"tens":[20, 40, 60]})
df.drop([0,2], axis='index')
df_train=df_train.reset_index()
df_train.drop(wrong_indexes_train)