如何从数据框中删除特定列
我刚开始学习Python和Pandas。我有一个数据表,看起来是这样的:
1 2.3 1 2.5 1 4.5
2 2.3 2 2.5 2 4.5
3 2.3 3 2.5 3 4.5
4 2.3 4 2.5 4 4.5
5 2.3 5 2.5 5 4.5
我想去掉所有重复的列,只保留第一列,所以我希望最后剩下的是:
1 2.3 2.5 4.5
2 2.3 2.5 4.5
3 2.3 2.5 4.5
4 2.3 2.5 4.5
5 2.3 2.5 4.5
我已经找到了重复列的索引,并把它们放在一个列表里,叫做duplicate_cols
。在上面的例子中,duplicate_cols=[2,4]
。
但是当我试着用下面的代码从数据表中提取这些列时:
dataframe.drop(dataframe.columns[duplicate_cols], axis=1)
结果是所有的列都被删除了(我指的是那些包含1 2 3 4 5
的列)。我本来希望第一列能保留下来(也就是第0列)。
有没有人能告诉我我哪里做错了?
1 个回答
1
假设你有一个数据表,并且根据你描述的问题,你想要删除第2列和第4列,因为它们是第0列的重复内容:
col0 col1 col2 col3 col4 col5
0 1 2.3 1 2.5 1 4.5
1 2 2.3 2 2.5 2 4.5
2 3 2.3 3 2.5 3 4.5
3 4 2.3 4 2.5 4 4.5
4 5 2.3 5 2.5 5 4.5
你可以在转置后的数据表上使用 drop_duplicates
方法:
df = df.T.drop_duplicates().T
这样做的结果会是:
col0 col1 col3 col5
0 1.0 2.3 2.5 4.5
1 2.0 2.3 2.5 4.5
2 3.0 2.3 2.5 4.5
3 4.0 2.3 2.5 4.5
4 5.0 2.3 2.5 4.5