如何在python中比较数据框的行是否相等

塔纳
1 0 0 0 1
0 0 0 0 0
0 1 0 0 1
1 0 0 0 1
0 0 0 0 0
1 0 0 0 1

我有一个数据框(见上文)。我需要比较它的行以获得匹配的行。因此,对于上面的df,我应该在比较后得到row1 = row4 = row6和row2 = row5。有什么有效的方法可以在python中进行行比较。

耶斯列尔

用:

import pandas as pd


df = pd.DataFrame({0: {0: 1, 1: 0, 2: 0, 3: 1, 4: 0, 5: 1}, 
                   1: {0: 0, 1: 0, 2: 1, 3: 0, 4: 0, 5: 0}, 
                   2: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0}, 
                   3: {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0}, 
                   4: {0: 1, 1: 0, 2: 1, 3: 1, 4: 0, 5: 1}})
print df
   0  1  2  3  4
0  1  0  0  0  1
1  0  0  0  0  0
2  0  1  0  0  1
3  1  0  0  0  1
4  0  0  0  0  0
5  1  0  0  0  1
#first select only all duplicated rows
df1 = df[df.duplicated(keep=False)]
print df1
   0  1  2  3  4
0  1  0  0  0  1
1  0  0  0  0  0
3  1  0  0  0  1
4  0  0  0  0  0
5  1  0  0  0  1

#sort values by all columns
df2 = df1.sort_values(by=df.columns.tolist())
print df2
   0  1  2  3  4
1  0  0  0  0  0
4  0  0  0  0  0
0  1  0  0  0  1
3  1  0  0  0  1
5  1  0  0  0  1

#find groups
print (~((df2 == df2.shift(1)).all(1))).cumsum()
1    1
4    1
0    2
3    2
5    2
dtype: int32
#print groups    
for i, g in df.groupby((~((df2 == df2.shift(1)).all(1))).cumsum()):
    print g

   0  1  2  3  4
1  0  0  0  0  0
4  0  0  0  0  0
   0  1  2  3  4
0  1  0  0  0  1
3  1  0  0  0  1
5  1  0  0  0  1

#dict comprehension for storing groups
dfs = {i-1: g for i,g in df.groupby((~((df2 == df2.shift(1)).all(1))).cumsum())}
print dfs
{0.0:    0  1  2  3  4
1  0  0  0  0  0
4  0  0  0  0  0, 1.0:    0  1  2  3  4
0  1  0  0  0  1
3  1  0  0  0  1
5  1  0  0  0  1}

print dfs[0]
   0  1  2  3  4
1  0  0  0  0  0
4  0  0  0  0  0

print dfs[1]
   0  1  2  3  4
0  1  0  0  0  1
3  1  0  0  0  1
5  1  0  0  0  1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中比较数据框的行是否相等

来自分类Dev

如何在Matlab中比较两个不同维数的矩阵并获得相等行的频率?

来自分类Dev

比较组数据框的列是否相等

来自分类Dev

熊猫比较-如何在2个单独的数据框中比较2个日期列

来自分类Dev

如何在 TinkerPop 中比较顶点集的相等性?

来自分类Dev

如何在php中比较表格数据

来自分类Dev

如何在Python中比较两(2)个不相等的数据帧,并将元素从一个分配到另一个?

来自分类Dev

Python Pandas:如何在数据框的每一行选择两列相等

来自分类Dev

如何在2个单独的数据框中比较2列无序列表?

来自分类Dev

如何在Python中比较列表?

来自分类Dev

如何在Python中比较枚举?

来自分类Dev

如何在python中比较数组列表?

来自分类Dev

如何在 Python 中比较列表中的对?

来自分类Dev

Python在2个数据框中比较变量

来自分类Dev

如何在Python中比较2个文件而忽略带注释的行(即以#开头的行)

来自分类Dev

如何在python中比较2个文件时忽略字段数据

来自分类Dev

如何在python中不同大小的两个数据帧中比较值对?

来自分类Dev

在Python中比较性能:相等与不相等

来自分类Dev

Firebase如何在数据规则中比较变量(== vs ===)?

来自分类Dev

如何在JMeter中比较数据库值

来自分类Dev

如何在Ruby中比较两组不同的数据

来自分类Dev

如何在Dart中比较两个相等且包含相同对象的列表?

来自分类Dev

在Swift中比较两个协议实例是否相等

来自分类Dev

如何在python中比较两个时间字段

来自分类Dev

如何在python中比较字符串和整数?

来自分类Dev

如何在python中比较两个时区?

来自分类Dev

如何在python中比较两个列表

来自分类Dev

如何在Python中比较对象属性的值?

来自分类Dev

如何在Python中比较2个txt文件

Related 相关文章

  1. 1

    如何在python中比较数据框的行是否相等

  2. 2

    如何在Matlab中比较两个不同维数的矩阵并获得相等行的频率?

  3. 3

    比较组数据框的列是否相等

  4. 4

    熊猫比较-如何在2个单独的数据框中比较2个日期列

  5. 5

    如何在 TinkerPop 中比较顶点集的相等性?

  6. 6

    如何在php中比较表格数据

  7. 7

    如何在Python中比较两(2)个不相等的数据帧,并将元素从一个分配到另一个?

  8. 8

    Python Pandas:如何在数据框的每一行选择两列相等

  9. 9

    如何在2个单独的数据框中比较2列无序列表?

  10. 10

    如何在Python中比较列表?

  11. 11

    如何在Python中比较枚举?

  12. 12

    如何在python中比较数组列表?

  13. 13

    如何在 Python 中比较列表中的对?

  14. 14

    Python在2个数据框中比较变量

  15. 15

    如何在Python中比较2个文件而忽略带注释的行(即以#开头的行)

  16. 16

    如何在python中比较2个文件时忽略字段数据

  17. 17

    如何在python中不同大小的两个数据帧中比较值对?

  18. 18

    在Python中比较性能:相等与不相等

  19. 19

    Firebase如何在数据规则中比较变量(== vs ===)?

  20. 20

    如何在JMeter中比较数据库值

  21. 21

    如何在Ruby中比较两组不同的数据

  22. 22

    如何在Dart中比较两个相等且包含相同对象的列表?

  23. 23

    在Swift中比较两个协议实例是否相等

  24. 24

    如何在python中比较两个时间字段

  25. 25

    如何在python中比较字符串和整数?

  26. 26

    如何在python中比较两个时区?

  27. 27

    如何在python中比较两个列表

  28. 28

    如何在Python中比较对象属性的值?

  29. 29

    如何在Python中比较2个txt文件

热门标签

归档