728x90
반응형
1. 필요성
pandas에서는 dictionary를 dataframe으로 바꿔주는 기능이 이미 있지만 이것은 diconary의 개별 key값들이 갖는 item의 숫자가 동일해야하는 문제가 있다.
온라인에 공개된 method들은 key값이 column으로 가는 wide-form으로 된 것들이 많아 NaN이 생길수 밖에 없다.
이러한 문제를 해결하고자 long-form으로 만드는 간단한 python 기능을 만들었다.
2. 기능 설명
해당 기능은 먼저 wide-form으로 만든 후에 pands의 melt기능을 활용해서 long-form으로 만든 후 NaN들은 제거한다.
이 때 key값이나 index에는 NaN이 없어야 한다.
def dict2df(x):
'''
x : dictionary
'''
x1=pd.DataFrame([pd.Series(x[key]) for key in x.keys()])
x1.index=x.keys()
x1=x1.reset_index().melt(id_vars='index').drop('variable',axis=1).dropna()
return x1
3. 사용 예제
import pandas as pd
di={'a':[1,2,3],'b':['x','y'],'c':['o','x','o','x',1]}
dict2df(x=di)
# 실행결과는 아래에 있다.
728x90
반응형
'파이썬3 > pandas' 카테고리의 다른 글
pd.read_csv 빠르게 하는 법 (0) | 2023.02.16 |
---|---|
pandas apply axis 방향 (0) | 2022.02.04 |
판다스 텍스트로 행 (row) 늘리기 (0) | 2022.01.26 |