首页 > 解决方案 > 删除python中的重复列表

问题描述

我想在使用后删除数据中的重复列表stack()。这是示例

node1 node2  value
A     B      0.05
A     C      0.84
B     A      0.05
B     C      0.97
C     A      0.84
C     B      0.97

进入

node1 node2  value
A     B      0.05
A     C      0.84
B     C      0.97

谢谢

编辑:我附上我的数据照片。第 2 行和第 174 行具有相同的节点但位置不同。我只想保留一个交互(row2)Ps。该值不是唯一的。 在此处输入图像描述

标签: pythonexceldataframecorrelation

解决方案


对,所以我是一名 Python 新手/初学者,但尝试了一些不同的东西,其中包括我能找到的点点滴滴:

import pandas as pd
import numpy as np
df = pd.DataFrame({'node1':['A','A','B','B','C','C'],
                   'node2':['B','C','A','C','A','B'],
                   'value':[0.05,0.84,0.05,0.97,0.84,0.97]})
df = df[['value','node1','node2']]                                                         #Step 1: re-arange dataframe to work properly
df['value'] = df['value'].astype(str)                                                      #Step 2: float type (numbers) to string type
df = pd.DataFrame(np.sort(df.values, axis=1), columns=df.columns).drop_duplicates()        #Step 3: Sort and drop dups
df['value'] = df['value'].astype(float)                                                    #Step 4: string type back to float
df = df[['node1','node2','value']]                                                         #Step 5: re-arange dataframe back to starting positions
print(df)

我使用并想参考:

  • .to_string关于 Panda功能Pandas 文档
  • 这个SO 帖子重新定位列,因为我发现np.sort没有移动标题。
  • 这个SO 帖子对值进行排序并删除重复项。

我 100% 确信,合适的人可以将其缩短为更流畅的代码。希望它在此期间有所帮助!


推荐阅读