first我熟悉如何删除重复行,然后使用, last,参数none。没有什么太复杂的,并且有很多例子(即这里)。
但是,我正在寻找的是有一种方法可以找到重复项,但不是删除所有重复项并保留第一个,如果我有重复项,请保留所有重复项但删除第一个:
因此,我不想“如果重复则删除,保留第一个”,而是“如果重复则保留,首先删除”
例子:
给定这个数据框,并查看cost列中的重复项:
    ID name type cost
0    0    a   bb    1
1    1    a   cc    2 <--- there are duplicates, so drop this row
2  1_0    a   dd    2
3    2    a   ee    3 <--- there are duplicates, so drop this row
4  2_0    a   ff    3
5  2_1    a   gg    3
6  2_2    a   hh    3
如果列中存在重复项cost,则只需删除第一个出现的项,但保留其余的项。
所以我的输出是:
    ID name type cost
0    0    a …我有一个 DataFrame,其中的列具有不同名称的重复数据:
In[1]: df
Out[1]: 
  X1   X2  Y1   Y2
 0.0  0.0  6.0  6.0
 3.0  3.0  7.1  7.1
 7.6  7.6  1.2  1.2
我知道 .drop(columns = ) 存在,但是有没有一种更有效的方法可以删除它们,而不必列出列名称?或不..请告诉我,因为我可以使用 .drop()
给定一个数据帧:
>>> import pandas as pd
>>> lol = [['a', 1, 1], ['b', 1, 2], ['c', 1, 4], ['c', 2, 9], ['b', 2, 10], ['x', 2, 5], ['d', 2, 3], ['e', 3, 5], ['d', 2, 10], ['a', 3, 5]]
>>> df = pd.DataFrame(lol)
>>> df.rename(columns={0:'value', 1:'key', 2:'something'})
  value  key  something
0     a    1          1
1     b    1          2
2     c    1          4
3     c    2          9
4     b    2         10
5     x    2          5
6     d    2          3
7     e …我正在尝试删除数据框(csv)中的重复数据并获取单独的 csv 来显示每列的唯一答案。问题是我的代码已经运行了一天(准确地说是 22 小时),我\xc2\xb4m 愿意接受其他一些建议。
\n我的数据大约有 20,000 行,带有标题(示例)。我之前曾尝试过像 df[col].unique() 这样一一检查唯一列表,并且不需要那么长时间。
\ndf = pd.read_csv(\'Surveydata.csv\')\ndf_uni = df.apply(lambda col: col.drop_duplicates().reset_index(drop=True))\ndf_uni.to_csv(\'Surveydata_unique.csv\', index=False)\n我期望的是数据框具有相同的列集,但每个字段中没有任何重复(示例)。前任。如果 df[\'Rmoisture\'] 具有 Yes、No、Nan 的组合,则它应该只有这 3 个包含在另一个数据帧 df_uni 的同一列中。
\n这是我的数据框:
pd.DataFrame({'A':[1, 3, 3, 4, 5, 3, 3],
              'B':[0, 2, 3, 4, 5, 6, 7],
              'C':[[1,4,4,4], [1,4,4,4], [3,4,4,5], [3,4,4,5], [4,4,2,1], [1,2,3,4,], [7,8,9,1]]})
我想设置\删除每行 C 列的重复值,但不删除重复的行。
这是我希望得到的:
pd.DataFrame({'A':[1, 3, 3, 4, 5, 3, 3],
              'B':[0, 2, 3, 4, 5, 6, 7],
              'C':[[1,4], [1,4], [3,4,5], [3,4,5], [4,2,1], [1,2,3,4,], [7,8,9,1]]})
我想知道是否有一种方法可以检查然后删除某些不唯一的行?
我的数据框看起来像这样:
    ID1 ID2 weight  
 0  2   4   0.5
 1  3   7   0.8 
 2  4   2   0.5 
 3  7   3   0.8
 4  8   2   0.5
 5  3   8   0.5
编辑:我添加了更多行,以显示应保留可能具有相同权重的其他唯一行。
我认为当我使用 pandas 时,drop_duplicates(subset=['ID1', 'ID2','weight'], keep=False)它会单独考虑每一行,但不会认识到第 0 行和第 2 行以及第 1 行和第 4 行实际上是相同的值?
我试图在数据框中查找列中具有相同值的列列表。R中有一个包whichAreInDouble,尝试在python中实现它。
df  =   
a b c d e f g h i   
1 2 3 4 1 2 3 4 5  
2 3 4 5 2 3 4 5 6  
3 4 5 6 3 4 5 6 7
它应该给我具有相同值的列列表,例如
a, e are equal
b,f are equal 
c,g are equal
我拥有的:
df
Name |Vehicle
Dave |Car
Mark |Bike
Steve|Car
Dave |
Steve|
我想从 Name 列中删除重复项,但前提是 Vehicle 列中的相应值为 null。我知道我可以使用
 df.dropduplicates(subset=['Name']) 
使用任何Keep =一种,'First' or 'Last'但我正在寻找的是一种从Name列的相应值是 的Vehicle列中删除重复项的方法null。所以基本上,保留NameifVehicle列不为空并删除其余部分。如果名称没有重复,即使相应的值为Vehicle空,也保留该行。
非常感谢
假设我有一个带有多个索引的 Pandas 数据框:
arrays = [["UK", "UK", "US", "FR"], ["Firm1", "Firm1", "Firm2", "Firm1"], ["Andy", "Peter", "Peter", "Andy"]]
idx = pd.MultiIndex.from_arrays(arrays, names = ("Country", "Firm", "Responsible"))
df = pd.DataFrame(np.zeros(4), index = idx)
df
                             0
Country Firm  Responsible     
UK      Firm1 Andy         0.0
              Peter        0.0
US      Firm2 Peter        0.0
FR      Firm1 Andy         0.0
我想删除前两个索引级别的重复条目(在示例中,包含“UK”和“Firm1”条目的行)并仅保留第三个索引“Responsible”等于“Andy”的行。所以在这种情况下我想删除第二行。
在pandas中有,drop_duplicates()  但我不知道如何i)仅将其应用于前两个索引级别,ii)指定保留带有“Andy”的行并删除其余行(该函数仅允许“first”和“最后'作为参数)
我很乐意提供意见!提前谢谢了。
我有以下数据集,我希望将一些自定义逻辑应用于:
data = pd.DataFrame({'ID': ['A','B','B','C','C','D','D'], 
'Date': ['2018-07-02T02:21:12.000+0000','2018-07-02T02:28:29.000+0000','2018-07-02T02:28:31.000+0000','2018-07-02T02:30:58.000+0000','2018-07-02T02:31:01.000+0000','2018-07-02T02:42:46.000+0000','2018-07-02T02:41:47.000+0000'],
'Action': ['Start','Start','Start','Stop','Stop','Start','Start'],
'Group': [5,13,13,19,19,2,2],
'Value': [100,110,110,95,95,280,280]
})
第 1:2、3:4 和 5:6 行都相同,除了日期列中的值相差几秒钟。如果 1) 相似行之间的“日期”时间增量小于 1 分钟并且 2) 所有其他信息都相同,是否有办法删除重复项?
结果应如下所示:
result = pd.DataFrame({
'ID': ['A','B','C','D'], 
'Date': ['2018-07-02T02:21:12.000+0000','2018-07-02T02:28:29.000+0000','2018-07-02T02:30:58.000+0000','2018-07-02T02:42:46.000+0000'],
'Action': ['Start','Start','Stop','Start'],
'Group': [5,13,19,2],
'Value': [100,110,95,280]
})
drop-duplicates ×10
pandas ×10
python ×8
dataframe ×3
python-3.x ×2
multi-index ×1
set ×1
unique ×1