python/pandas
[pandas] Data Frame 중첩 Dict 으로 생성하기
전감자(◔◡◔)
2022. 10. 2. 16:06
Data Frame 의 중첩과 중첩 리스트에 대해서 알아보자
'''
중첩 dict
dict_value = { key1: { key1-1: value},
key2: { key2-1: value},
....}
key1, key2 ==> 컬럼명으로 지정됨.
key1-1, key2-1 ==> 인덱스로 지정됨.
'''
앞서 dict 로 Data Frame 을 만드는 것을 배웠는데 위 처럼 dict 의 value 값에 다시 dict 가 들어가있으면
어떤 Data Frame 이 만들어 질까?
mport numpy as np
import pandas as pd
dict_value = {"key1":{"key1-1":[1,2,3]},
"key2":{"key2-1":[1,2,3]},
"key3":{"key3-1":[1,2,3]}
}
실습을 위해 위와 같은 중첩 dict 를 만들어 주었다.
df = pd.DataFrame(dict_value)
print(df)
'''
key1 key2 key3
key1-1 [1, 2, 3] NaN NaN
key2-1 NaN [1, 2, 3] NaN
key3-1 NaN NaN [1, 2, 3]
'''
출력해보면 결과는 위와 같다.
key1, key2, key3는 중첩을 하지 않았을 때와 마찬가지로 컬럼이름으로 들어갔고,
key1-1, key2-1, key3-1는 인덱스 이름으로 들어간 것을 확인할 수 있다.
그리고 이전과 다르게 [1,2,3] 이 각각의 레코드로 들어가는 것이 아니라 (key1-1,key1)
한 칸에 [1,2,3]이 통째로 들어간 것을 유의하자.
나머지 레코드들에는 값이 들어있지 않기 때문에 Nan 이 출력되었다.
# 응용
dict_value ={'Nevada':{2001:2.4,2002:2.9},
'Ohio': {2001:1.7,2002:3.6}}
df = pd.DataFrame(dict_value)
print(df)
'''
Nevada Ohio
2001 2.4 1.7
2002 2.9 3.6
'''
Nan 이 없는 Data Frame 을 만들기 위해서는 위 처럼 중첩으로 넣은 dict 의 key 값을 여러번 써줘서
컬럼에 대응하는 값을 모두 넣어주어야 한다.