Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk membuat lajur baharu dengan nilai yang dipilih berdasarkan lajur sedia ada?

Bagaimana untuk membuat lajur baharu dengan nilai yang dipilih berdasarkan lajur sedia ada?

王林
王林ke hadapan
2024-02-22 13:40:13979semak imbas

Bagaimana untuk membuat lajur baharu dengan nilai yang dipilih berdasarkan lajur sedia ada?

Kandungan soalan

Bagaimana untuk menukar color 列添加到以下数据帧,以便 color='green' 如果 set == 'z',否则 color='red'?

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

Jawapan betul


Jika anda hanya mempunyai dua pilihan, gunakan np.where:

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

Sebagai contoh,

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)

Output

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

Jika anda mempunyai lebih daripada dua syarat, sila gunakan np.selectnp.select。例如,如果您希望 color

. Contohnya, jika anda mahu color menjadi
  • yellow(df['set'] == 'z') & (df['type'] == 'a')
  • blue(df['set'] == 'z') & (df['type'] == 'b')Jika tidak
  • purple(df['type'] == 'b')Jika tidak
  • blackJika tidak
  • ,

Kemudian gunakan

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)

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

Atas ialah kandungan terperinci Bagaimana untuk membuat lajur baharu dengan nilai yang dipilih berdasarkan lajur sedia ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam