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

王林
Lepaskan: 2024-02-22 13:40:13
ke hadapan
893 orang telah melayarinya

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
Salin selepas log masuk


Jawapan betul


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

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

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)
Salin selepas log masuk

Output

set type  color
0   z    a  green
1   z    b  green
2   x    b    red
3   y    c    red
Salin selepas log masuk

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)
Salin selepas log masuk

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

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!