簡體   English   中英

刪除python中的重復列表

[英]remove duplicated list in 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。 該值不是唯一的。 在此處輸入圖片說明

是的,所以我是一個 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)

我用過並想參考:

  • 這個關於 Panda 的.to_string函數的 Pandas 文檔
  • 這篇SO post 重新定位列,因為我發現np.sort沒有移動標題。
  • SO 帖子用於對值進行排序並刪除重復項。

我 100% 確信這可以由合適的人縮短為更流暢的代碼段。 希望它在此期間有所幫助!

最后我在excel中找到了其他方法,並使用if-else函數解決了它

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

我添加新列並比較 col1 和 col2 哪個具有更高的值if(A2>B2,1,0)

node1 node2  value   cond
A     B      0.05    0
A     C      0.84    0
B     A      0.05    1
B     C      0.97    0
C     A      0.84    1
C     B      0.97    1

我交換 col1 和 col2 其中 cond=1

node1 node2  value   cond
A     B      0.05    0
A     C      0.84    0
A     B      0.05    1
B     C      0.97    0
A     C      0.84    1
B     C      0.97    1

最后我刪除表中的重復項

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

謝謝大家想辦法解答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM