2017-12-02 11 views
0

각 키에 값 목록이있는 사전이 있습니다. 각 키와 연관된 목록의 길이가 다릅니다. 'Key'와 'Values'라는 두 개의 열이있는 팬더 데이터 프레임으로 사전을 변환하고 싶습니다. 각 행은 '키'열에 하나의 사전 키가 있고 '값'열에는 값과 연관된 값 목록이 있습니다. 로 볼 것이다 dataframe은 다음과 같습니다팬더 데이터 프레임 셀에 목록 삽입

mapping_dict = {'A':['a', 'b', 'c', 'd'], 'B':['aa', 'bb', 'cc']} 

df = 
    Key Value 
0 A  ['a', 'b', 'c', 'd'] 
1 B  ['aa', 'bb', 'cc'] 

내가 내 유스 케이스에 따라이를 수정하여 here를 제공하는 답을 사용했습니다. 그러나 필요한 답이 출력되지 않았습니다.

답변

1

dict 값 크기가 같지 않기 때문에 을 생성자 내부에 사용하십시오. N set_axis

mapping_dict = {'A':['a', 'b', 'c', 'd'], 'B':['aa', 'bb', 'cc']} 

df = pd.DataFrame(pd.Series(mapping_dict).reset_index()).set_axis(['Key','Value'],1,inplace=False) 

    Key   Value 
0 A [a, b, c, d] 
1 B [aa, bb, cc] 

옵션 2 즉 열 이름을 추가 한 후 목록 생성자에 전달하기 위해 DICT 항목을 변환 :

df = pd.DataFrame(list(mapping_dict.items()),columns=['Key','Value']) 
0

미리 사전을 업데이트해야한다고 생각하면 from_dict을 사용할 수 있습니다. 목록을 목록으로 만들려면 사전을 업데이트하십시오.

import pandas as pd 
mapping_dict = {'A':['a', 'b', 'c', 'd'], 'B':['aa', 'bb', 'cc']} 
updated_dict = {k: [v] for k, v in mapping_dict.items()} 
df = pd.DataFrame.from_dict(updated_dict,orient='index') 

당신이 원하는 경우에 당신의 정확한 형식

df_formatted = df.reset_index() 
df_formatted.columns = ['Key', 'Value'] 
print(df_formatted) 

    Key   Value 
0 B [aa, bb, cc] 
1 A [a, b, c, d] 

UPDATE

바라 스의 대답은 짧은하지만 여전히 from_dict을 사용하려는 경우 다음 당신이해야 할 자신의 방법에 참여할 수

df2 = pd.DataFrame.from_dict(list(mapping_dict.items())) 
df2.columns = ['Key', 'Value']