如何从数据框中删除特定列

0 投票
1 回答
84 浏览
提问于 2025-04-12 19:05

我刚开始学习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

撰写回答