代码之家  ›  专栏  ›  技术社区  ›  suptagni

如何删除数据帧中任何行的重复单元格?

  •  0
  • suptagni  · 技术社区  · 2 年前

    我需要更新熊猫数据框,如下所示。有可能吗? [我非常感谢你们的时间和努力。很抱歉,我的问题在你们中间引起了混乱。我试图更新这个问题。再次感谢]

    样本1:

    import pandas as pd    
    #original dataframe
    data = {'row_1': ['x','y','x','y'], 'row_2': ['a', 'b', 'a', None]}
    data=pd.DataFrame.from_dict(data, orient='index')
    print(data)
    
    #desired dataframe from data
    data1 = {'row_1': ['x','y'], 'row_2': ['a', 'b']}
    data1=pd.DataFrame.from_dict(data1, orient='index')
    print(data1)
    

    样本2:

    import pandas as pd    
    #original dataframe
    data = {'row_1': ['x','y','p','x'], 'row_2': ['a', 'b', 'a', None]}
    data=pd.DataFrame.from_dict(data, orient='index')
    print(data)
    
    #desired dataframe from data
    data1 = {'row_1': ['x','y','p'], 'row_2': ['a', 'b']}
    data1=pd.DataFrame.from_dict(data1, orient='index')
    print(data1)
    
    3 回复  |  直到 2 年前
        1
  •  1
  •   user2736738    2 年前
    data = data.apply(lambda x: x.transpose().dropna().unique().transpose(), axis=1)
    

    这就是你要找的。使用 dropna 摆脱 NaN 然后只保留 unique 元素。将此逻辑应用于数据帧的每一行,以获得所需的结果。

        2
  •  0
  •   memo    2 年前

    你可以用 duplicated 方法看看这个 link 例如熊猫的API参考

        3
  •  0
  •   Zero    2 年前

    你可以这么做,

    data = data.T.loc[data.T["row_1"].drop_duplicates().index, :].T
    

    输出-

    0 1.
    第1排 十、 Y
    第2排 A. B