Seite 1 von 1

Neue Spalte in Dataframe erstellen

Verfasst: Freitag 18. September 2020, 11:52
von fischer-klaus3
Hallo lieber pythoner,

dies ist mein jetziger Datensatz

timestamp visitorid event
x 12 view
x 12 transaction
x 14 addtocart

Was ich möchte ist

timestamp visitorid event code
x 12 view 1
x 12 transaction 2
x 14 addtocart 3

Also ich möchte eine neue Spalte hinzufügen die Zahlen enthält. Basierend auf dem Event soll eine Zahl gewählt werden. Dies bedeutet, wenn als Event view ausgewählt wurde dann soll als Code eine 1 eingetragen werden, als addtocart eine 3 und für transaction eine 2 .

Dies ist mein Versuch, leider ohne Erfolg

Code: Alles auswählen

df = pd.read_csv(path + "file.csv")

for i in df_event.shape:
    if event == "view":
       df_event["code"] = 1
    elif event == "addtocart":
      df_event["code"] = 2
    else:
      df_event["code"] = 3
Kann mir jemand bitte helfen? Ich bedanke mich im Voraus und wünsche einen tollen Tag!

Re: Neue Spalte in Dataframe erstellen

Verfasst: Freitag 18. September 2020, 12:02
von Sirius3
Was heißt "ohne Erfolg"? Was passiert?

Re: Neue Spalte in Dataframe erstellen

Verfasst: Freitag 18. September 2020, 12:36
von __blackjack__
Ich tippe auf einen `NameError` weil `df_event` nirgends definiert ist. Wenn man das definiert ist `event` das nächste was undefiniert ist. Das ist kein Code das ist reines Wunschdenken in Python-Syntax. 😉

Re: Neue Spalte in Dataframe erstellen

Verfasst: Freitag 18. September 2020, 13:00
von fischer-klaus3
Ohhh, hoppla. Natürlich habe ich den Code so nicht 1:1 stehen. Habe den Name geändert und leider nicht alles geändert.

Re: Neue Spalte in Dataframe erstellen

Verfasst: Freitag 18. September 2020, 13:07
von __blackjack__
Ich sehe nicht wie man das nur durch geänderte Namen auch nur halbwegs sinnvoll lauffähig bekommt. Der Code macht so einfach keinen Sinn, denn das iterieren über die Dimensionen, die bei einem DataFrame immer genau zwei sind, macht keinen Sinn und `event` kommt auch mit anderem Namen einfach so aus dem nichts, beziehungsweise ist nicht definiert.

Du suchst wohl die `map()`-Methode auf `Series`-Objekten. Der kann man eine Abbildung, also zum Beispiel ein Wörterbuch (`dict`) übergeben, und damit Wert auf andere Werte abbilden lassen.

Re: Neue Spalte in Dataframe erstellen

Verfasst: Donnerstag 24. September 2020, 22:56
von __blackjack__
Upsi ich hab diesen Tab gerade wiedergefunden. Beispiel:

Code: Alles auswählen

In [125]: df                                                                    
Out[125]: 
  timestamp  visitorid        event
0         x         12         view
1         x         12  transaction
2         x         14    addtocart

In [126]: df["code"] = df["event"].map({"view": 1, "addtocart": 2, "transaction": 3})                                                                 

In [127]: df                                                                    
Out[127]: 
  timestamp  visitorid        event  code
0         x         12         view     1
1         x         12  transaction     3
2         x         14    addtocart     2