繁体   English   中英

在Pandas Dataframe的同时删除一行和一列

[英]Drop a row and column at the same time Pandas Dataframe

我有一个像这样的数据框架

Victim Sex       Female    Male  Unknown
Perpetrator Sex                         
Female            10850   37618       24
Male              99354  299781       92
Unknown           33068  156545      148

我打算删除索引为'Unknown'的行和名为'Unknown ”的列。 我知道如何删除一行和一列,但我想知道你是否可以在熊猫中同时删除一行和一列? 如果是的话,怎么办呢?

这应该可以完成这项工作,但它并不是真正的同时,但没有中间对象返回给你。

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

我认为最接近'at the same time'是由locdifference选择:

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,3和5,同时如果要删除索引0,1和3以及数据帧的最后一行,可以通过以下方式执行此操作:

df.drop(df.columns[[2,3,5]], axis = 1).drop(df.index[[0,1,3,-1]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM