Dataframe doppelte Werte entfernen (nicht pd drop_duplicates))

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Jootto
User
Beiträge: 5
Registriert: Samstag 26. Mai 2018, 15:10

Hallo zusammen

Ich brauche einen Anstupser um ans Ziel zu kommen.
Aus verschiedenen TXT Files habe Ich das DATA Frame erzeut.

6 Spalten
450 Zeilen

Unter der AccontID befinden sich ID's die genau einmal vorkommen und ID's die genau zwei mal vorkommen.
Am Ende brauche ich nur die Zeilen mit der eindeutigen InstanceID!
Hier bleiben also die Zeilen mit dem Index 2 (i-002xxxxxxx385c401) und 312 (i-0fe915qwertzu4d6b) übrig! Es soll die ganze Zeile ausgegeben werden.

.....
import pandas as pd
LIST = pd.read_csv("list_delta.txt")

Frame=pd.DataFrame(LIST.values, columns = ["InstanceID","AccontID","Region","IP","Type","NamedTag"])
Frame=Frame.sort_values('InstanceID')

#----- das funktioniert nicht -----
#Frame=Frame[Frame.drop_duplicates(subset=['InstanceID'])]
#Frame=Frame[~Frame.drop_duplicated('InstanceID')]
#Frame['InstanceID'].unique()
-----

Frame.to_csv("list_summary.txt",
index=False,
encoding="utf-8",
sep=",",
na_rep="---"
)


InstanceID AccontID Region IP Type NamedTag
2 i-002xxxxxxx385c401 112447187595 eu-west-3 10.100.201.123 t3.xlarge egal.de
20 i-00yyyyyyyybfb4382 125812558595 eu-central-1 10.112.149.199 t3a.medium Inspector-Test
230 i-00yyyyyyyybfb4382 125897187595 eu-central-1 HEALTHY NaN NaN
331 i-dfe7c3438f09f7db0 392611224740 eu-central-1 UNKNOWN NaN NaN
138 i-dfe7c3438f09f7db0 392697111740 eu-central-1 10.144.136.63 t3.medium wurst.de
.. ... ... ... ... ... ...
312 i-0fe915qwertzu4d6b 125223187595 eu-central-1 UNKNOWN NaN NaN
361 i-0fe96124555ff912b 392114471740 eu-central-1 HEALTHY NaN NaN
140 i-0fe96124555ff912b 392998871740 eu-central-1 10.177.138.131 m5.large osterei.cloud
209 i-012345678114f9604 724112254266 ap-southeast-2 10.122.161.241 t2.small regal.de
401 i-012345678114f9604 724112254266 ap-southeast-2 HEALTHY NaN NaN



Vielleicht habt ihr ein paar Anregungen.

Gruß Jörg
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Jootto: Du suchst die `duplicated()`-Methode:

Code: Alles auswählen

In [434]: df                                                                    
Out[434]: 
              InstanceID      AccontID  ...        Type        NamedTag
2    i-002xxxxxxx385c401  112447187595  ...   t3.xlarge         egal.de
20   i-00yyyyyyyybfb4382  125812558595  ...  t3a.medium  Inspector-Test
230  i-00yyyyyyyybfb4382  125897187595  ...         NaN             NaN
331  i-dfe7c3438f09f7db0  392611224740  ...         NaN             NaN
138  i-dfe7c3438f09f7db0  392697111740  ...   t3.medium        wurst.de
312  i-0fe915qwertzu4d6b  125223187595  ...         NaN             NaN
361  i-0fe96124555ff912b  392114471740  ...         NaN             NaN
140  i-0fe96124555ff912b  392998871740  ...    m5.large   osterei.cloud
209  i-012345678114f9604  724112254266  ...    t2.small        regal.de
401  i-012345678114f9604  724112254266  ...         NaN             NaN

[10 rows x 6 columns]

In [435]: df.duplicated("InstanceID", False)                                    
Out[435]: 
2      False
20      True
230     True
331     True
138     True
312    False
361     True
140     True
209     True
401     True
dtype: bool

In [436]: ~df.duplicated("InstanceID", False)                                   
Out[436]: 
2       True
20     False
230    False
331    False
138    False
312     True
361    False
140    False
209    False
401    False
dtype: bool

In [437]: df[~df.duplicated("InstanceID", False)]                               
Out[437]: 
              InstanceID      AccontID  ...       Type NamedTag
2    i-002xxxxxxx385c401  112447187595  ...  t3.xlarge  egal.de
312  i-0fe915qwertzu4d6b  125223187595  ...        NaN      NaN

[2 rows x 6 columns]
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten