Pandas: 길이가 다른 dict에서 dataframe 만들기
다음 기본 구문을 사용하여 항목 길이가 다른 사전에서 pandas DataFrame을 만들 수 있습니다.
import pandas as pd df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()]))
이 구문은 사전 배열 목록을 Pandas 시리즈 목록으로 변환합니다.
이를 통해 우리는 pandas DataFrame을 생성하고 NaN 값을 입력하여 결과 DataFrame의 각 열이 동일한 길이인지 확인할 수 있습니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: 길이가 다른 사전에서 Pandas DataFrame 만들기
서로 다른 길이의 항목을 포함하는 다음 사전이 있다고 가정합니다.
#create dictionary whose entries have different lengths some_dict = dict(A=[2, 5, 5, 7, 8], B=[9, 3], C=[4, 4, 2]) #view dictionary print (some_dict) {'A': [2, 5, 5, 7, 8], 'B': [9, 3], 'C': [4, 4, 2]}
from_dict() 함수를 사용하여 이 사전을 pandas DataFrame으로 변환하려고 하면 오류가 발생합니다.
import pandas as pd #attempt to create pandas DataFrame from dictionary df = pd. DataFrame . from_dict (some_dict) ValueError : All arrays must be of the same length
사전의 모든 배열은 길이가 동일해야 한다는 오류가 발생합니다.
이 오류를 해결하려면 다음 구문을 사용하여 Dictionary를 DataFrame으로 변환할 수 있습니다.
import pandas as pd #create pandas DataFrame from dictionary df = pd. DataFrame (dict([(key, pd. Series (value)) for key, value in some_dict. items ()])) #view DataFrame print (df) ABC 0 2 9.0 4.0 1 5 3.0 4.0 2 5 NaN 2.0 3 7 NaN NaN 4 8 NaN NaN
pandas DataFrame을 성공적으로 생성할 수 있으며 각 열의 길이가 동일하도록 NaN 값이 채워집니다.
이러한 NaN 값을 다른 값(예: 0)으로 바꾸려면 다음과 같이 replacement() 함수를 사용할 수 있습니다.
#replace all NaNs with zeros
df. replace (np. nan , 0, inplace= True )
#view updated DataFrame
print (df)
ABC
0 2 9.0 4.0
1 5 3.0 4.0
2 5 0.0 2.0
3 7 0.0 0.0
4 8 0.0 0.0
각 NaN 값은 0으로 대체되었습니다.
NaN 값을 원하는 값으로 바꾸려면 자유롭게 replacement() 함수를 사용하세요.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas: DataFrame을 사전으로 변환하는 방법
Pandas: 사전을 사용하여 열 이름을 바꾸는 방법
Pandas: 사전을 사용하여 NaN 값을 채우는 방법