Seite 1 von 1

Numerize und apply im Dataframe

Verfasst: Dienstag 9. Mai 2023, 17:27
von Hoeoe
Hallo ich stehe vor folgendem Problem:

Code: Alles auswählen

# import the module
import pandas as pd
 
# creating a DataFrame
df = pd.DataFrame({'String 1' :['Tom', 'Nick', 'Krish', 'Jack'],
                   'String 2' :['Jane', 'John', 'Doe', 'Mohan']})
 
# function for prepending 'Geek'
def prepend_geek(name):
    return 'Geek ' + name
 
# executing the function
df[["String 1", "String 2"]] = df[["String 1",
                                   "String 2"]].apply(prepend_geek)
 
# displaying the DataFrame
print(df)
Geht.

Wieso geht das hier nicht? Bzw. wie müsste es richtig lauten? (Vorletzte Zeile)

Code: Alles auswählen

from numerize import numerize
import pandas as pd 
 

d=[[623232323276, 98234242265], [5656565323, 438878787232]]
z=[6232323232.76, 98234242265]

df = pd.DataFrame({"a":[623232323276, 98234242265],
                   "b": [5656565323, 438878787232]})
df3=df.copy()

def makereadable(x):
    return numerize.numerize(x)

df["a"] = df["a"].apply(makereadable)
df["b"] = df["b"].apply(makereadable)

print(df)


df3[["a","b"]] = df3[["a","b"]].apply(makereadable)
print(df3)
Vielen Dank für die Hilfe

Re: Numerize und apply im Dataframe

Verfasst: Samstag 13. Mai 2023, 12:17
von Sirius3
Im ersten Fall erzeugst Du neue Spalten und überschreibst damit die alten.
Im zweiten Fall nimmst Du zwei bestehende Spalten und versuchst den Inhalt zu ersetzen. Da aber der neue Inhalt (String) in den bestehenden Spaltentyp int umgewandelt werden muß, geht das schief.

Re: Numerize und apply im Dataframe

Verfasst: Samstag 13. Mai 2023, 14:02
von __blackjack__
Das erste Beispiel hätte man übrigens einfacher haben können:

Code: Alles auswählen

In [58]: df
Out[58]: 
  String 1 String 2
0      Tom     Jane
1     Nick     John
2    Krish      Doe
3     Jack    Mohan

In [59]: "Geek " + df
Out[59]: 
     String 1    String 2
0    Geek Tom   Geek Jane
1   Geek Nick   Geek John
2  Geek Krish    Geek Doe
3   Geek Jack  Geek Mohan