So ändern Sie die Werte einer Spalte basierend auf einer anderen Spalte über den Index
Nima
Ich habe einen Datenrahmen mit zwei Spalten:
A B
0 0
0 1
0 0
0 0
0 0
0 1
Ich möchte einen Code haben, der die Spalte B überprüft, und wenn eine 1 gefunden wird, ändern sich die Werte der Spalte A aus diesem INDEX bei 1 wie folgt.
A B
0 0
1 1
1 0
1 0
1 0
1 1
Mein Code ist so, aber es ist nicht das, was ich will:
df['A']= np.where(df['B'] == 1,df['A'], '1')
Dani Mesejo
Du könntest es tun:
df.loc[df['B'].idxmax():, 'A'] = 1
print(df)
Ausgabe
A B
0 0 0
1 1 1
2 1 0
3 1 0
4 1 0
5 1 1
Wenn Sie np.where verwenden möchten, gehen Sie wie folgt vor:
df['A'] = np.where(df.index < df['B'].idxmax(), df['A'], 1)
print(df)
Wenn die Spalte B
neben 0s und 1s noch andere Werte haben kann, gehen Sie wie folgt vor:
df['A'] = np.where(df.index < df['B'].eq(1).idxmax(), df['A'], 1)