본문 바로가기
Python/Pandas

Pandas 신규 Column 생성

by 찐남 2021. 8. 16.
본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다.
본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다.

 

2021.08.15 - [Python/Pandas 기초익히기] - Pandas에서 플롯 생성 방안에서 사용한 실습 데이터를 계속 사용하겠습니다. 

 

air_quality_no2.csv
0.03MB

 

import pandas as pd 

air_quality = pd.read_csv("D:/python_exer/air_quality_no2.csv", index_col=0, parse_dates=True)
air_quality.head()

 

 

런던 스테이션의 NO2 농도를 mg/m3으로 표현하려고 하면 어떻게 해야 할까요? 

(온도 25도, 기압 1013hPa라고 가정하면 환산계수는 1.882) 

아래와 같은 방법으로 신규 columne을 생성하면 됩니다.

 

air_quality["london_mg_per_cubic"] = air_quality["station_london"] * 1.882
air_quality.head()

 

 

새 column을 만들려면 할당 왼쪽에 새 column 이름과 함께 [] 대괄호를 사용합니다. (Note: 값 계산은 element_wise로 수행됩니다. 이는 주어진 열의 모든 값에 한 번에 1.882 값을 곱한다는 의미입니다. 각 행을 반복하기 위해 루프를 사용할 필요가 없습니다!)

 

 

파리 대 앤트워프 값의 비율을 확인하고 결과를 새 열에 저장하고자 한다면, 아래와 같이 실행하시면 됩니다.

 

air_quality["ratio_paris_antwerp"] = air_quality["station_paris"] / air_quality["station_antwerp"] 
air_quality.head()

 

 

 



 

 

 

계산은 다시 요소별로 이루어지므로 / (나누기) 연산이 각 행의 값에 적용됩니다. 또한 다른 수학 연산자(+, -, *, /) 또는 논리 연산자(<, >, =,…)는 요소별로 작동합니다. 후자는

2021.08.14 - [Python/Pandas 기초익히기] - Pandas 데이터프레임의 부분 데이터 세트 선택 방법에서 이미 사용했습니다(조건식을 사용하여 테이블의 행을 필터링한 결과를 하위 집합 데이터로 생성). 더 고급 로직이 필요한 경우 apply()를 통해 임의의 Python 코드를 사용할 수 있습니다.

 

데이터 열의 이름을 openAQ에서 사용하는 해당 스테이션 식별자로 바꾸고 싶습니다.

 

air_quality_renamed = air_quality.rename(
____________________________columns={
__________________________________________"station_antwerp": "BETR801",
__________________________________________"station_paris": "FR04014",
__________________________________________"station_london": "London Westminster",
________________________________________}
_____________________________)

air_quality_renamed.head()

 

 

rename() 함수는 행 레이블과 열 레이블 모두에 사용할 수 있습니다. 해당 이름을 업데이트하려면 현재 이름의 키와 새 이름의 값을 딕셔너리 형태로 입력해 주시면 됩니다. 

 

매핑은 고정된 이름으로만 제한되어서는 안 되며 매핑 기능도 될 수 있습니다. 예를 들어 열 이름을 소문자로 변환하는 것도 함수를 사용하여 수행할 수 있습니다. 

 

air_quality_renamed = air_quality_renamed.rename(columns=str.lower)
air_quality_renamed.head()

 

 

2. Remember!

 

  • [] 사이에 새 열 이름을 사용하여 출력을 DataFrame에 할당하여 새 열을 만듭니다. 
  • 작업은 요소별로 이루어지며 행을 반복할 필요가 없습니다.
  • 행 레이블이나 열 이름의 이름을 바꾸려면 사전이나 함수와 함께 이름 바꾸기를 사용하십시오.

 

 

반응형

댓글