Im folgenden Beispiel. Ich versuche, eine Spalte 'E' zu generieren, die entweder [1 oder 2] abhängig von einer bedingten Anweisung in Spalte A zugewiesen wird.Wert der neuen Spalte ['E'] basierend auf dem Wert der Spalte ['A'] über Datenrahmen zuweisen
Ich habe verschiedene Optionen ausprobiert, aber sie werfen einen Slicing-Fehler. (Sollte es nicht so etwas wie dies Wert auf neue Spalte 'E'?
df2 = df.loc zuweisen [df [ 'A'] == 'foo'] [ 'E'] = 1
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
# A B C D
# 0 foo one 0 0
# 1 bar one 1 2
# 2 foo two 2 4
# 3 bar three 3 6
# 4 foo two 4 8
# 5 bar two 5 10
# 6 foo one 6 12
# 7 foo three 7 14
print('Filter the content')
df2= df.loc[df['A'] == 'foo']
print(df2)
# A B C D E
# 0 foo one 0 0 1
# 2 foo two 2 4 1
# 4 foo two 4 8 1
# 6 foo one 6 12 1
# 7 foo three 7 14 1
df3= df.loc[df['A'] == 'bar']
print(df3)
# A B C D E
# 1 bar one 1 2 2
# 3 bar three 3 6 2
# 5 bar two 5 10 2
#Combile df2 and df3 back to df and print df
print(df)
# A B C D E
# 0 foo one 0 0 1
# 1 bar one 1 2 2
# 2 foo two 2 4 1
# 3 bar three 3 6 2
# 4 foo two 4 8 1
# 5 bar two 5 10 2
# 6 foo one 6 12 1
# 7 foo three 7 14 1