![](/img/trans.png)
[英]Sorting a Pandas DataFrame by both column and row index at the same time
[英]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'
是由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,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.