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 Bneben 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)

Verwandte Artikel