Diğer sütundaki değere göre python 3 (pandalar) veri çerçevesinde yeni sütun oluşturun

Aug 16 2020

Veri çerçevesindeki diğer sütunlardan alınan değerlere göre yeni sütunlar oluşturmam gereken bir Pandalar veri çerçevem ​​var. İşte veri çerçevesi

kişi şehir devlet ülke

Bir Chicago Illinois ABD

B Phoenix Arizona ABD

C San Diego California ABD

Durumdaki değerlere göre iki yeni sütun oluşturmak istiyorum

  1. Eyalet = "Illinois" olan yeni sütun df ["şehir-kuzey"] = df ['şehir'] oluşturun
  2. Eyaletin "Illinois" e eşit olmadığı yeni sütun df ["şehir-güney"] = df ['şehir'] oluşturun

denedim

df.loc[((df['state'] == 'Illinois')), 'city-north'] = df['city']

df.loc[((df['state'] != 'Illinois')), 'city-south'] = df['city']

Ancak koşula eşit olmayan ikinci kod satırı 'şehir-güney' sütunu oluşturmaz. Lütfen yardım et

Yanıtlar

1 jezrael Aug 16 2020 at 13:10

Benim için iyi çalışıyorum, eğer hiçbir eşleşme koşulu oluşturulmazsa eksik değerler:

df.loc[df['state'] == 'Illinois', 'city-north'] = df['city']
df.loc[df['state'] != 'Illinois', 'city-south'] = df['city']

print (df)
  person       city       state country city-north city-south
0      A    Chicago    Illinois     USA    Chicago        NaN
1      B    Phoenix     Arizona     USA        NaN    Phoenix
2      C  San Diego  California     USA        NaN  San Diego

Eşleşmeyen satırlar için boş değer dizelerine ihtiyacınız varsa:

df['city-north'] = np.where(df['state'] == 'Illinois', df['city'], '')
df['city-south'] = np.where(df['state'] != 'Illinois', df['city'], '')

print (df)
  person       city       state country city-north city-south
0      A    Chicago    Illinois     USA    Chicago           
1      B    Phoenix     Arizona     USA               Phoenix
2      C  San Diego  California     USA             San Diego