同时删除一行和一列 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
的列。我知道如何删除一行和一列,但我想知道您是否可以在 pandas 中同时删除一行和一列?如果是,那怎么做到的?
这应该可以完成工作,但实际上并不是同时进行,但不会向您返回任何中间对象。
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)
returns
A
D 3
我认为最接近的 'at the same time'
是 select by loc
and 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]])
我有一个类似这样的数据框
Victim Sex Female Male Unknown
Perpetrator Sex
Female 10850 37618 24
Male 99354 299781 92
Unknown 33068 156545 148
我打算删除索引为 'Unknown'
的行和名为 'Unknown
的列。我知道如何删除一行和一列,但我想知道您是否可以在 pandas 中同时删除一行和一列?如果是,那怎么做到的?
这应该可以完成工作,但实际上并不是同时进行,但不会向您返回任何中间对象。
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)
returns
A
D 3
我认为最接近的 'at the same time'
是 select by loc
and 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]])