string vergleich

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Julien456935
User
Beiträge: 19
Registriert: Donnerstag 22. November 2018, 15:26

Hallo,
folgendes logische Problem:

Code: Alles auswählen

import numpy as np 
from numpy import median
import folium
a = ['834,SDS011,47.05,15.44,2017-08-26' , '22:00:00,7.037,5.709']
b = ['834,SDS011,47.05,15.44,2017-08-25' , '23:00:00,7.037,5.709']
c = ['1438,SDS011,47.08,15.43,2017-07-01' , '01:00:00,5.835,4.589']
d = ['1747,SDS011,47.03,15.39,2017-07-02' , '04:00:00,4.829,3.72']
e = ['1747,SDS011,47.03,15.39,2017-07-01' , '14:00:00,4.881,3.751']
f = ['1747,SDS011,47.03,15.39,2017-07-02' , '01:00:00,4.829,3.717']
g = ['1438,SDS011,47.08,15.43,2017-07-01' , '15:00:00,5.764,4.545']
h = ['1438,SDS011,47.08,15.43,2017-07-01' , '11:00:00,5.792,4.563']
i = ['1503,SDS011,47.08,15.49,2017-07-02' , '17:00:00,4.433,3.769']

sensor_array = np.array([b,a,c,d,e,f,g,h,i])
print(sensor_array)
Ich habe ein Array mit zwei Spalten. Jede Zeile besteht aus zwei Strings. Ich benötige für die Marker einer Karte, den ersten String eines jeden Sensors (erste Zahl) genau einmal.

Die Idee ist ja einer leeren Liste oder Menge (Set) immer den ersten String hinzuzufügen. Das Problem ist aber, dass sich diese Stings im Datum ebenfalls unterscheiden. Bevor ich diesen String jedesmal zerlege und ohne Datum zusammenfüge, hätte Jemand einen Tipp das anders zu lösen. Denke da an einen Vergleich mit der startwith() Funktion...

Hier habe hier einfach mal jeden String hinzugefügt der noch nicht enthalten ist, aber ebben unterscheiden sie sich auch am Datum.

Code: Alles auswählen

def sensor_marker():
    #als erstes eine Liste aller Sensoren:
    marker_data = []
    for row in sensor_array:
        if row[0] not in marker_data:
          marker_data.append(row[0])  
    print(marker_data)

sensor_marker()
ArtooDetoo
User
Beiträge: 60
Registriert: Dienstag 4. Dezember 2018, 16:57

Ich bin mir nicht sicher, ob ich das richtig verstehe, aber möchtest du das so haben?

Code: Alles auswählen

[str.join(',',i.split(',')[:-1]) for i in sensor_array[:,0]]
Benutzeravatar
__blackjack__
User
Beiträge: 14018
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Julien456935: Wie kommen diese komischen Daten denn überhaupt zustande und warum packst Du die in ein Numpy-Array? Ersteres ist komisch, weil's so aussieht als wurden CSV-Daten unsinnigerweise an einem Leerzeichen getrennt, und letzteres macht für Listen mit zwei Zeichenketten als Elemente für ein Numpy-Array absolut keinen Sinn.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Sirius3
User
Beiträge: 18260
Registriert: Sonntag 21. Oktober 2012, 17:20

@Julien456935: Du warst doch vor einem Monat schon einmal weiter mit dem Erzeugen einer passenden Datenstruktur. Warum jetzt wieder dieser Rückschritt?
Was hat Dir damals nicht gefallen und was brauchst Du jetzt?
Julien456935
User
Beiträge: 19
Registriert: Donnerstag 22. November 2018, 15:26

@ ArtooDetoo: Danke ich habs dann eh bald hinbekommen!
@ __blackjack__ @Sirius : Diese Datenstruktur ist mit diesem Leerzeichen in einer csv einfach für eine neue Übung neu gegeben. Stimmt schon, dass das Leerzeichen eigentlich kein Sinn hat.
Antworten