【问题标题】:Slicing pandas dataframe based on rearranged duplicates (or how to drop rearranged duplicates) [duplicate]基于重新排列的重复项(或如何删除重新排列的重复项)对熊猫数据框进行切片 [重复]
【发布时间】:2019-12-10 13:49:10
【问题描述】:

我有一个大数据框的格式

   col1    col2    val1    val2
[0]A       B       0.8     0.1
[1]B       A       0.8     0.1
[2]A       C       0.3     0.9
[3]A       D       0.2     0.8
[4]D       A       0.2     0.8

如您所见,有些行是重复的,只有 col1col2 颠倒了。例如,行1 是行0 的副本,行4 是行3 的副本。您可以根据col1:col2 的匹配与col2:col1 的匹配删除重复项吗?

【问题讨论】:

    标签: python pandas duplicates slice object-slicing


    【解决方案1】:

    您可以按np.sort 对两列进行排序并分配回来,然后使用DataFrame.drop_duplicates 指定一些列:

    df[['col1','col2']] = np.sort(df[['col1','col2']], axis=1)
    df1 = df.drop_duplicates(['col1','col2'])
    print (df1)
      col1 col2  val1  val2
    0    A    B   0.8   0.1
    2    A    C   0.3   0.9
    3    A    D   0.2   0.8
    

    按所有列删除重复项:

    df2 = df.drop_duplicates()
    print (df2)
      col1 col2  val1  val2
    0    A    B   0.8   0.1
    2    A    C   0.3   0.9
    3    A    D   0.2   0.8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 2022-10-12
      • 2019-03-20
      • 2012-06-19
      相关资源
      最近更新 更多