当前位置: 首页 > 面试题库 >

DataFrame.drop_duplicates和DataFrame.drop不删除行

司马俊晖
2023-03-14
问题内容

我已经将csv读入pandas数据框,它有五列。某些行仅在第二列中具有重复值,我想从数据框中删除这些行,但drop或drop_duplicates都不起作用。

这是我的实现:

#Read CSV
df = pd.read_csv(data_path, header=0, names=['a', 'b', 'c', 'd', 'e'])

print Series(df.b)

dropRows = []
#Sanitize the data to get rid of duplicates
for indx, val in enumerate(df.b): #for all the values
    if(indx == 0): #skip first indx
        continue

    if (val == df.b[indx-1]): #this is duplicate rtc value
        dropRows.append(indx)

print dropRows

df.drop(dropRows) #this doesnt work
df.drop_duplicates('b') #this doesnt work either

print Series(df.b)

当我打印系列df.b之前和之后的长度相同时,我仍然可以清楚地看到重复项。我的实现中有什么问题吗?


问题答案:

如注释中所述,dropdrop_duplicates创建一个新的DataFrame,除非提供了inplace参数。所有这些选项将起作用:

df = df.drop(dropRows)
df = df.drop_duplicates('b') #this doesnt work either
df.drop(dropRows, inplace = True)
df.drop_duplicates('b', inplace = True)


 类似资料:
  • 我只是想了解SpringJPA/Hibernate的某些部分是如何工作的。正如标题所说,只有在从集合中添加和删除子实体之间将实体刷新到数据库时,删除孤儿似乎才起作用,我想知道为什么。 我有一个父类,它与一个子类有一个@OneToMore关联 我正在测试让孩子在从父级删除时删除,就像这样(使用@autowiledJPARepository 如果在将子项添加到父项和删除子项之间未刷新实体管理器,则两个

  • 我有两个实体使用Spring和Hibernate

  • 编辑:修改问题以更好地反映问题。此处最初发布的问题 我有一个父实体(< code >上下文)和一个子实体(< code >用户)。父级上的级联“删除”不会删除子级。代码如下:

  • -我发现shiftRows函数存在一个导致excel中断的错误。https://bz.apache.org/bugzilla/show_bug.cgi?id=57423我不确定这是否已经修复。我已经在bugzilla上添加了一个评论来进一步了解这一点。 如果满足特定的单元格值条件,我正尝试从excel文件中删除行(而不是删除的内容)。 我成功地实现了这一点,但问题是它破坏了我的excel并且当我重

  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的

  • 如何在不删除索引映射的情况下从elasticsearch数据库中删除数据? 我是Tire gem,使用删除命令删除我所有的映射并再次运行创建命令。我想避免创建命令一次又一次地运行。 请帮我解决这个问题。