Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich eine neue Spalte mit ausgewählten Werten basierend auf einer vorhandenen Spalte?

Wie erstelle ich eine neue Spalte mit ausgewählten Werten basierend auf einer vorhandenen Spalte?

王林
王林nach vorne
2024-02-22 13:40:13937Durchsuche

Wie erstelle ich eine neue Spalte mit ausgewählten Werten basierend auf einer vorhandenen Spalte?

Frageninhalt

Wie ändert man color 列添加到以下数据帧,以便 color='green' 如果 set == 'z',否则 color='red'?

Type  Set
1     A    Z
2     B    Z           
3     B    X
4     C    Y

Richtige Antwort


Wenn Sie nur zwei Möglichkeiten haben, verwenden Sie np.where:

df['color'] = np.where(df['set']=='z', 'green', 'red')

Zum Beispiel

import pandas as pd
import numpy as np

df = pd.dataframe({'type':list('abbc'), 'set':list('zzxy')})
df['color'] = np.where(df['set']=='z', 'green', 'red')
print(df)

Ausgabe

set type  color
0   z    a  green
1   z    b  green
2   x    b    red
3   y    c    red

Wenn Sie mehr als zwei Bedingungen haben, verwenden Sie bitte np.selectnp.select。例如,如果您希望 color

. Wenn Sie beispielsweise möchten, dass color
    ist
  • yellow(df['set'] == 'z') & (df['type'] == 'a')
  • blue(df['set'] == 'z') & (df['type'] == 'b')Sonst
  • purple(df['type'] == 'b')Sonst
  • blackSonst
  • ,

Dann verwenden Sie

df = pd.dataframe({'type':list('abbc'), 'set':list('zzxy')})
conditions = [
    (df['set'] == 'z') & (df['type'] == 'a'),
    (df['set'] == 'z') & (df['type'] == 'b'),
    (df['type'] == 'b')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
print(df)

Generieren🎜
Set Type   color
0   Z    A  yellow
1   Z    B    blue
2   X    B  purple
3   Y    C   black

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine neue Spalte mit ausgewählten Werten basierend auf einer vorhandenen Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen