본문 바로가기
파이썬

파이썬 데이터 프레임의 열에서 사전 값 추출

by º기록 2020. 11. 8.
반응형

내 코드를 최적화하는 방법을 찾고 있습니다.

다음 형식의 항목 데이터가 있습니다.

import pandas as pn

a=[{'Feature1': 'aa1','Feature2': 'bb1','Feature3': 'cc2' },
 {'Feature1': 'aa2','Feature2': 'bb2' },
 {'Feature1': 'aa1','Feature2': 'cc1' }
 ]
b=['num1','num2','num3']


df= pn.DataFrame({'num':b, 'dic':a })

위 데이터 프레임의 'dic'(존재하는 경우) 열의 사전에서 'Feature3'요소를 추출하고 싶습니다. 지금까지 해결할 수 있었지만 이것이 가장 빠른 방법인지는 모르겠지만 약간 복잡해 보입니다.

Feature3=[]
for idx, row in df['dic'].iteritems():
    l=row.keys()

    if 'Feature3' in l:
        Feature3.append(row['Feature3'])
    else:
        Feature3.append(None)

df['Feature3']=Feature3
print df

이 Feature3를 데이터 프레임의 열을 분리하기 위해 추출하는 더 좋고 / 빠르고 / 간단한 방법이 있습니까?

도움을 주셔서 미리 감사드립니다.

 

해결 방법

 

목록 이해를 사용하여 데이터 프레임의 각 행에서 기능 3을 추출하여 목록을 반환 할 수 있습니다.

feature3 = [d.get('Feature3') for d in df.dic]

'Feature3'이 dic 에 없으면 기본적으로 None을 반환합니다.

목록 이해를 다시 사용하여 원래 사전 a 에서 특성을 추출 할 수 있으므로 팬더도 필요하지 않습니다.

feature3 = [d.get('Feature3') for d in a]

 

참조 페이지 https://stackoverflow.com/questions/35711059

 

 

반응형

댓글