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 값을 채우는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다