Pandas结合了两列的值并比较了唯一性

时间:2016-04-25 08:22:10

标签: python-3.x pandas dataframe

我想组合/连接数据帧的两列中的值,并比较这些值的唯一性,例如

      col1    col2
row1  val11   val12
row2  val21   val22
row3  val31   val32

我想连接val11val12val21val22val31val32,然后比较val11+val12val21+val22val31+val32表示唯一性,即检查三个连接值是否相等。

dtypecol1的{​​{1}}都是col2

我想知道最好的方法是什么。

1 个答案:

答案 0 :(得分:2)

您可以使用duplicated来检查已加入列col1col2boolean indexing的唯一性:

print df
       col1   col2
row1  val11  val12
row2  val21  val22
row3  val31  val32
row3  val31  val32

ser = df.col1 + df.col2
print ser
row1    val11val12
row2    val21val22
row3    val31val32
row3    val31val32

print ser.duplicated(keep=False)
dtype: object
row1    False
row2    False
row3     True
row3     True

print ~ser.duplicated(keep=False)
row1     True
row2     True
row3    False
row3    False
dtype: bool

print df[~ser.duplicated(keep=False)]
       col1   col2
row1  val11  val12
row2  val21  val22
相关问题