"평면화"하고 싶은 사전이 있습니다 (ish) Series
입니다. 내 문제/시험 재현하기 위해 나는 유사한 구조를 가진 Series
을 만들었습니다일련의 사전을 DataFrame으로 효율적으로 변환하십시오.
>>> my_series = pd.Series([{'A': [1], 'B' : []}, {'A' : [1, 2], 'B' : [3, 4]}])
>>> my_series
0 {u'A': [1], u'B': []}
1 {u'A': [1, 2], u'B': [3, 4]}
dtype: object
다음 단계는 계층 적 색인이있는 'DataFrame'로 변환된다. 나는 기능적으로 작동하는 방법을 발견했다 :이 내가 원하는 걸 제공
>>> pd.DataFrame(pd.DataFrame.from_dict(row, orient='index').stack() for row in my_series)
A B
0 1 0 1
0 1.0 NaN NaN NaN
1 1.0 2.0 3.0 4.0
을,하지만 내 실제 데이터 세트에이 목록의 각 0-4 요소와 30,000 행을 약 60 초 복용, 엄청나게 느린 , 약 8G RAM을 사용합니다.
multiprocessing
모듈을 병렬로 사용하여 작업 속도를 높이려고 시도했지만 더 나은 방법이 있는지 여기에서 물을 것이라고 생각했습니다.
보다 합리적인 시간에 위와 동일한 결과를 얻을 수 있습니까?
@Kasramvd 나는이 구축 된 방법 모르겠지만, 이것으로 볼 것이다 - 팁 주셔서 감사합니다 :) – arman