반응형
내 코드를 최적화하는 방법을 찾고 있습니다.
다음 형식의 항목 데이터가 있습니다.
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 왜 파이썬에서 추상베이스 클래스를 사용합니까? (0) | 2020.11.08 |
---|---|
파이썬 Anaconda Python : 가상 환경은 어디에 저장됩니까? (0) | 2020.11.08 |
파이썬에서 두 목록을 비교하고 일치하지 않는 것을 반환하는 방법 (0) | 2020.11.08 |
파이썬 Pyspark DataFrame의 선택한 행에서 특정 필드 가져 오기 (0) | 2020.11.08 |
파이썬 TensorFlow : float64 텐서를 float32로 캐스팅 (0) | 2020.11.08 |
댓글