다른 열의 값을 기반으로 Python 3 (Pandas) 데이터 프레임에 새 열 만들기

Aug 16 2020

데이터 프레임의 다른 열 값을 기반으로 새 열을 만들어야하는 팬더 데이터 프레임이 있습니다. 다음은 데이터 프레임입니다.

사람 도시 주 국가

미국 일리노이 주 시카고

B Phoenix Arizona 미국

C 샌디에고 캘리포니아 미국

상태 값을 기반으로 두 개의 새 열을 만들고 싶습니다.

  1. 상태 = "일리노이"인 새 열 df [ "city-north"] = df [ 'city'] 생성
  2. 상태가 "일리노이"와 같지 않은 새 열 df [ "city-south"] = df [ 'city'] 생성

나는 시도했다

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

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

그러나 조건과 같지 않은 코드의 두 번째 줄은 'city-south'열을 생성하지 않습니다. 도와주세요

답변

1 jezrael Aug 16 2020 at 13:10

잘 작동하는 경우 일치 조건이 생성되지 않으면 결 측값이 생성됩니다.

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

일치하지 않는 행에 빈 값 문자열이 필요한 경우 :

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