Ich habe ein Dataframe und möchte eine neue Spalte basierend auf Bedingung erstellen, in dieser neuen Spalte, wenn eine bestimmte Bedingung erfüllt ist, dann wird der Wert aus einem anderen sein Spalte sonst muss es Null sein. Der Orginal DataFrame ist;Erstellen einer neuen Spalte basierend auf Bedingung mit Werten aus einer anderen Spalte in Python
df2 = pd.read_csv('C:\Users\ABC.csv')
df2['Date'] = pd.to_datetime(df2['Date'])
df2['Hour'] = df2.Date.dt.hour
df2['Occupied'] = ''
Date Value Hour Occupied
2016-02-02 21:00:00 0.6 21
2016-02-02 22:00:00 0.4 22
2016-02-02 23:00:00 0.4 23
2016-02-03 00:00:00 0.3 0
2016-02-03 01:00:00 0.2 1
2016-02-03 02:00:00 0.2 2
2016-02-03 03:00:00 0.1 3
2016-02-03 04:00:00 0.2 4
2016-02-03 05:00:00 0.1 5
2016-02-03 06:00:00 0.4 6
Ich mag gleiche Werte wie df2.Value in dem besetzten Spalte haben, wenn df2.Hour größer oder gleich 9 ist, da sonst die Werte Null in der besetzten Spalte sein werden. Ich habe den folgenden Code ausprobiert, aber es funktioniert nicht so, wie ich möchte (es druckt dieselben Werte wie df2.Value, ohne else-Anweisung zu berücksichtigen);
for i in df2['Hour']:
if i >= 9:
df2['Occupied'] = df2.Value
else:
df2['Occupied'] = 0
Irgendeine Idee, was ist daran falsch?
Danke, das für mich gearbeitet. – Muhammad