2017-09-26 1 views
1

저는 여전히 아주 나쁜 프로그래머로서, 현재 프로젝트를 시작하고 있습니다. 나는 대부분 Java 경험이 있지만, 지금은 프로젝트를 위해 Python3으로 전환해야합니다.python3에서 CSV가 아닌 Excel 파일로 사전을 만들 수 있습니까?

필자는 가지고있는 Excel 파일을 사용하여 각 열에 대한 사전을 작성하여 값 목록을 의미합니다.

저는 파이썬 3의 팬더 라이브러리를 사용하여 CSV 파일과 비슷한 작업을 수행했습니다.

내가 팬더가있는 파일을 가져올 수있는 한 사전에 어떻게 만들 수 있습니까? 먼저 범주 형 데이터를 처리해야합니까, 아니면 사전에서 수행 할 수 있습니까?

import pandas as pd 

d = pd.read_excel("file.xls") 
+1

, 당신은 엑셀로 할 수 있습니다, 그것의 더 다른. –

답변

2

당신은 이미 그곳에 있습니다. 당신은 당신이 다음 to_dict 방법을 사용하여 사전에 개별적으로 변환 할 수 있습니다 sheetname=None, 사용할 때 read_excel 당신에게 DataFrames의 사전을 줄 것이다 : 당신은 CSV로 그것을 한 적이있는 경우

import pandas as pd 

frames = pd.read_excel('file.xls', sheetname=None) 
dicts = [df.to_dict('list') for df in frames.values()] 
2

각 열은 정말 당신이 어떤 목록 수로 DICT 내부에 배치 할 수있는 팬더 시리즈, can be converted into a list이다.

def df_dict(df): 
    dict = {} 
    for col in df: 
     dict[col] = df[col].unique().tolist() # unique method optional 
    return dict 

dict_d = df_dict(d) 
+1

'df.to_dict ('list')'는 유일성을 무시하면서 훨씬 더 간결한 방법입니다. – asongtoruin

+0

우수함, 고유성이 필요없는 경우 @asongtoruin의 메소드가이를 수행하는 방법입니다. – Dan

관련 문제