我有一个像这样的数据框
Victim Sex Female Male Unknown
Perpetrator Sex
Female 10850 37618 24
Male 99354 299781 92
Unknown 33068 156545 148
我计划删除索引为'Unknown'
的行和名为'Unknown
'的列。我知道如何删除一行和一列,但我想知道你是否可以在熊猫中同时删除一行和一列?如果是的话,怎么办呢?
答案 0 :(得分:4)
这应该可以完成这项工作,但实际上并不是在同一时间,但是没有中间对象返回给你。
df.drop("Unknown", axis=1).drop("Unknown", axis=0)
所以对于一个具体的例子:
df = pd.DataFrame([[1,2],[3,4]], columns=['A', 'B'], index=['C','D'])
print(df)
A B
C 1 2
D 3 4
电话
df.drop('B', axis=1).drop('C', axis=0)
返回
A
D 3
答案 1 :(得分:3)
我认为最接近的'at the same time'
由loc
和difference
选择:
print (df.index.difference(['Unknown']))
Index(['Female', 'Male'], dtype='object')
print (df.columns.difference(['Unknown']))
Index(['Female', 'Male'], dtype='object')
df = df.loc[df.index.difference(['Unknown']), df.columns.difference(['Unknown'])]
print (df)
Victim Sex Female Male
Perpetrator Sex
Female 10850 37618
Male 99354 299781
答案 2 :(得分:2)
您可以在一行中同时删除列和行及其位置。例如,如果要删除列2,3和5,同时要删除索引0,1和3以及数据帧的最后一行,则可以按照以下步骤进行操作,
df.drop(df.columns[[2,3,5]], axis = 1).drop(df.index[[0,1,3,-1]])