微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在数据框行上起作用以减少重复对Python

我有一个数据框,看起来像:

0     1      2      3       4       5       6       7      8     9     10     11
12    13     13     13.4    13.4    12.4    12.4    16     0     0     0      0
14    12.2   12.2   13.4    13.4    12.6    12.6    19     5     5     6.7    6.7
.
.
.

每个“层” /行都有对,这些对是我要减少的重复项.

一个问题是,也有重复的0,所以我不能只是简单地删除每行的重复项,否则它将留下数量不等的行.

我想要的输出将是lambda函数,可以将其应用于此数据帧的所有行以获取此信息:

0     1      2      3       4       5      6 
12    13     13.4   12.4    16      0      0
14    12.2   13.4   12.6    19      5      6.7
.
.
.

我可以编写一个简单的函数来做到这一点吗?

解决方法:

方法1使用transpose

正如Yuca在评论中提到的:

df = df.T.drop_duplicates().T
df.columns = range(len(df.columns))

print(df)
      0     1     2     3     4    5    6
0  12.0  13.0  13.4  12.4  16.0  0.0  0.0
1  14.0  12.2  13.4  12.6  19.0  5.0  6.7

方法2使用具有偶数的列表理解

我们可以列出偶数,然后根据它们的索引选择这些列:

idxcols = [x-1 for x in range(len(df.columns)) if x % 2]

df = df.iloc[:, idxcols]

df.columns = range(len(df.columns))
print(df)
    0     1     2     3  4    5
0  12  13.0  13.4  12.4  0  0.0
1  14  12.2  13.4  12.6  5  6.7

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐