15
다음 예제와 모양이 유사한 데이터 세트를 분석합니다..map()을 사용하여 pandas DataFrame에 추가 열을 효율적으로 생성
abc1 abc2 abc3 xyz1 xyz2 xyz3
0 1 2 2 2 1 2
1 2 1 1 2 1 1
2 2 2 1 2 2 2
3 1 2 1 1 1 1
4 1 1 2 1 2 1
내가 dataframe에 존재하는 각 ABC 열에 대한 범주화 컬럼을 추가하는 기능을 만들려 : I는 데이터의 두 가지 유형 (ABC 데이터 XYZ 데이터)를 갖는다. 열 이름 목록과 범주 매핑 사전을 사용하여 원하는 결과를 얻을 수있었습니다.
abc_columns = ['abc1', 'abc2', 'abc3']
xyz_columns = ['xyz1', 'xyz2', 'xyz3']
abc_category_columns = ['abc1_category', 'abc2_category', 'abc3_category']
categories = {1: 'Good', 2: 'Bad', 3: 'Ugly'}
for i in range(len(abc_category_columns)):
df3[abc_category_columns[i]] = df3[abc_columns[i]].map(categories)
print df3
최종 결과 : 마지막에 for
루프가 잘 작동
abc1 abc2 abc3 xyz1 xyz2 xyz3 abc1_category abc2_category abc3_category
0 1 2 2 2 1 2 Good Bad Bad
1 2 1 1 2 1 1 Bad Good Good
2 2 2 1 2 2 2 Bad Bad Good
3 1 2 1 1 1 1 Good Bad Good
4 1 1 2 1 2 1 Good Good Bad
동안, 나는 파이썬의 lambda
기능을 이용해야하지만, 그것을 알아낼 수없는 것 같은 느낌.
동적 숫자 abc 유형의 열을 더 효율적으로 매핑 할 수 있습니까?
앤디, 정말 고마워요! –
@AndyHayden, 데이터 프레임의 .applymap과 팬더 데이터 프레임의 .map의 차이점은 무엇입니까? – yoshiserry
@yoshiserry applymap은 각 행/열이 아닌 각 셀에 적용합니다. –