2017-01-26 1 views
0

나는 다음과 같은 팬더 DataFrame 있습니다새로운 컬럼은 다른 컬럼의 값에 조건 DataFrame

df = pd.DataFrame({'country' : ['US','FR','DE','SP'], 
    'energy_per_capita': [10,8,9,7], 
    'pop_2014' : [300,70,80,60], 
    'pop_2015': [305,72,80,'NaN']}) 

나는 새 열 만들고 싶습니다

df['total energy consumption'] 

energy_per_capita 팝을 곱 . 나는 pop_2015 == NaN이

감사

+1

을 사용하는 당신도, 그 열을 만들 수있을 때까지 내가 좋아하는 것! 그래서 무엇을 시도 했습니까? – blacksite

+0

저는 파이썬과 프로그래밍에 대해 매우 익숙합니다 ... if/else 문을 기반으로 계산했지만 작동하지 못했습니다. – Pierre

답변

4

당신이 10 Minutes to pandas을 읽을 수 있는지 확인하는 경우가 pop_2015 사용할 수 및 pop_2014을하고 싶습니다. 이 경우를 위해 우리는 pandas.DataFrame.fillna 방법

df = pd.DataFrame({'country' : ['US','FR','DE','SP'], 
    'energy_per_capita': [10,8,9,7], 
    'pop_2014' : [300,70,80,60], 
    'pop_2015': [305,72,80,np.nan]}) 

df['total energy consumption']= df['energy_per_capita'] *df['pop_2015'].fillna(df['pop_2014']) 
print df 

출력

country energy_per_capita pop_2014 pop_2015 total energy consumption 
0  US     10  300  305.0     3050.0 
1  FR     8  70  72.0      576.0 
2  DE     9  80  80.0      720.0 
3  SP     7  60  NaN      420.0 
+0

초보자 질문에 대해 대단히 고맙고 사과드립니다 ... – Pierre

+1

"이 칼럼에서 가치를 취하는 개념을 더 잘 맞는'df.pop_2015.combine_first (df.pop_2014)'라고 할 것이지만 NaN이 다음과 같다면 다른 하나 " – Boud

+0

@Boud 정보 주셔서 감사합니다 – Shijo

관련 문제