Python-复制列以查找df熊猫数据

时间:2018-08-04 12:06:28

标签: pandas duplicates python-3.6

如果我有一个DataFrame:

 col1  |  col2  |  col3
  1    |   f    |    Y 
  1    |   t    |    G 
  2    |   b    |    Z 
  7    |   t    |    Y 
  2    |   f    |    Z 
  1    |   b    |    Y 
  7    |   b    |    Q 
  2    |   b    |    Q
  7    |   t    |    Q 
  2    |   c    |    Z   

df = df [df.duplicated(['col1','col3'],keep = False)]

然后将'col2'的值分配给新数据框。

Like

1 | f | Y  1 | b | Y

Exclude

2 | b | P  2 | b | P

 col1  |  col2  |  col3 
  1    |   f    |    Y 
  1    |   b    |    Y 
  2    |   b    |    Z 
  2    |   f    |    Z 
  2    |   c    |    Z 
  7    |   b    |    Q
  7    |   t    |    Q    

如何在python中执行此操作?预先感谢!

1 个答案:

答案 0 :(得分:1)

要获得输出,只需

ndf=df.loc[df[['col1', 'col3']].duplicated(keep=False)].sort_values(by='col1')

    col1    col2    col3
0   1       f       Y
5   1       b       Y
2   2       b       Z
4   2       f       Z
9   2       c       Z
6   7       b       Q
8   7       t       Q

现在,要获取col2的所有不同值,请使用

ndf.col2.unique()

array(['f', 'b', 'c', 't'], dtype=object)

或者您也可以删除重复项(但是我不确定那是您想要的)

ndf.drop_duplicates('col2')

    col1    col2    col3
0   1   f   Y
5   1   b   Y
9   2   c   Z
8   7   t   Q