Applies ToMicrosoft 365용 Excel

이제 버전 2407(빌드 17830.20128)부터 Windows에서 현재 채널을 실행하는 엔터프라이즈 및 비즈니스 사용자가 Excel의 Python을 사용할 수 있으며, Windows의 월간 엔터프라이즈 채널은 버전 2408(빌드 17928.20216)부터 사용할 수 있습니다. 버전 2405(빌드 17628.20164)부터 Windows에서 현재 채널을 실행하는 가족 및 개인 사용자의 미리 보기에서 사용할 수 있습니다. Excel의 Python은 Microsoft 365 참가자 프로그램을 통해 현재 채널(미리 보기)을 실행하는 교육 사용자를 위해 미리 보기로 제공됩니다. Semi-Annual Enterprise 채널에는 현재 사용할 수 없습니다.

먼저 Windows용 Excel로 배포된 다음 나중에 다른 플랫폼으로 배포됩니다. 자세한 가용성 정보는 Excel의 Python 가용성을 참조하세요.

Excel에서 Python에 문제가 있는 경우 Excel에서 도움말 > 피드백을 선택하여 보고하세요.

Excel의 Python을 처음 사용하시나요? Excel에서 Python 소개 및 Excel에서Python 시작으로 시작합니다.

오픈 소스 Python 라이브러리를 사용하여 플롯 및 차트 만들기 

Excel의 Python에는 Anaconda에서 제공하는 핵심 Python 라이브러리 집합이 함께 제공됩니다. 이 문서에서는 Seaborn및 Matplotlib과 같은 Python 라이브러리를 사용하여 플롯과 차트를 만드는 방법을 설명합니다. Excel에서 Python에서 사용할 수 있는 오픈 소스 라이브러리에 대한 자세한 내용은 Excel의 오픈 소스 라이브러리 및 Python을 참조하세요. 

이 문서의 예제에서는 아이리스 꽃 데이터 집합을 사용합니다. 이 샘플 통합 문서를 다운로드하여 python-in-excel-iris-dataset.xlsx문서와 함께 수행합니다. 

seaborn을 사용하여 쌍 플롯 만들기 

이 예제에서는 아이리스 꽃 데이터 집합의 쌍 플롯 시각화를 만드는 방법을 보여줍니다. 쌍 플롯은 데이터 집합의 각 변수 간의 관계를 비교하는 플롯과 차트의 행렬입니다. 이 경우 아이리스 꽃 데이터 집합에는 sepal_length, sepal_width, petal_lengthpetal_width 네 개의 숫자 데이터 열이 포함됩니다. 

Excel에서 Python을 사용하여 seaborn 라이브러리를 사용하여 쌍 플롯을 만듭니다.

Excel의 Python은 해상라이브러리를 사용하여 시각화를 만듭니다. 다음 import 문과 함께 Excel에서 Python용 Seaborn라이브러리를 자동으로 가져와 별칭 sns로 참조할 수 있습니다.  

import seaborn as sns 

해상 라이브러리를 사용하여 아이리스 꽃 데이터 집합의 쌍 플롯을 만들려면 다음 단계를 수행합니다.

  1. Excel 셀의 Python에 다음 코드 조각을 입력합니다. 코드 조각은 쌍 플롯을 pairplot이라는 변수로 저장합니다.  해상 라이브러리 별칭 sns 및 해상 함수 pairplot을 사용하여 쌍 플롯을 만듭니다. pairplot = sns.pairplot(xl("Table1[#All]", headers=True))pairplot 함수의 인수로 코드 조각은 사용자 지정 Python 함수 xl()을 사용하고 워크시트 Table1의 첫 번째 테이블을 참조합니다. 여기에는 전체 테이블 내용( [#All])이 포함되며 테이블에 머리글 행( headers=True)이 포함됩니다. 이 예제에서 워크시트의 Table1 에는 아이리스 데이터 세트가 포함되어 있습니다.DataFrame에서 쌍 플롯 미리 보기를 참조하세요.

    참고: 오류가 발생하는 경우 자세한 내용은 Excel 오류에서 Python 문제 해결 을 참조하세요. 

  2. Python 수식을 커밋한 후 Excel의 Python은 이미지 개체의 쌍 플롯 시각화를 반환합니다. 이미지 개체 셀에서 카드 아이콘을 선택하여 시각화 미리 보기를 확인합니다.DataFrame 카드 그림 미리 보기를 참조하세요.

  3. 시각화를 Image 개체로 유지하여 Python 계산에 계속 사용합니다. Excel 표에 이미지를 추출하여 크기를 조정하고 각 플롯을 자세히 봅니다. 그리드에 이미지를 추출하려면 이미지 개체가 포함된 셀을 마우스 오른쪽 단추로 클릭하거나 Ctrl+클릭하고 메뉴에서 셀 위에 그림 표시를 선택합니다.이미지 개체 추출에 대한 자세한 내용은 이 문서의 Excel 그리드에 이미지 개체 추출 문서를 참조하세요.

Matplotlib을 사용하여 산점도 만들기 

이 예제에서는 아이리스 꽃 샘플 데이터 집합을 사용하여 산점도를 만드는 방법을 설명합니다. 산점도는 데이터 집합의 두 숫자 변수 간의 관계를 보여 줍니다. 이 예제에서는 sepal_width 및 sepal_length 값을 비교하여 다음 스크린샷과 같은 산점도를 만듭니다.

Excel에서 Python을 사용하여 matplotlib 라이브러리를 사용하여 산점도를 만듭니다.

Excel의 Python은 Matplotlib오픈 소스 라이브러리를 사용하여 시각화를 만듭니다. Matplotlib라이브러리는 다음 import 문과 함께 Excel의 Python에 대해 자동으로 가져오기되므로 plt로 참조할 수 있습니다.  

import matplotlib.pyplot as plt 

Matplotlib 라이브러리를 사용하여 아이리스 꽃 데이터 집합의 산점도를 만들려면 다음 단계를 수행합니다.

  1. Excel 셀의 Python에서 Matplotlib 분산함수를 사용하고 iris 데이터 집합의 sepal_length 및 sepal_width 열을 인수로 입력합니다. 이 예제에서 워크시트의 Table1 에는 아이리스 데이터 세트가 포함되어 있습니다.plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. 산점도에 레이블 및 제목을 추가합니다.  # Label the x and y axes of the plot. plt.xlabel('sepal_length') plt.ylabel('sepal_width')   # Add a title to the plot.  plt.title('Sepal length and width analysis')

    참고: 이전 단계의 Python 수식 다음에 동일한 Excel 셀에서 이 코드 조각을 추가 코드 조각으로 추가하거나 통합 문서의 Excel 셀에 새 Python에 입력할 수 있습니다. 새 셀에 입력하도록 선택하는 경우 행 주 계산 순서 규칙을 따르고 첫 번째 셀 뒤에 입력해야 합니다.

  3. Python 수식을 커밋한 후 Excel의 Python은 산점도 시각화를 이미지 개체로 반환합니다. 이미지 개체 셀에서 카드 아이콘을 선택하여 시각화 미리 보기를 확인합니다.  DataFrame에서 산점도의 미리 보기를 봅니다.

    참고: 오류가 발생하는 경우 자세한 내용은 Excel 오류에서 Python 문제 해결 을 참조하세요.  

  4. 시각화를 이미지 개체로 유지하여 Python 계산에 계속 사용합니다. Excel 표에 이미지를 추출하여 크기를 조정하고 그림을 자세히 봅니다. 그리드에 이미지를 추출하려면 이미지 개체가 포함된 셀을 마우스 오른쪽 단추로 클릭하거나 Ctrl+클릭하고 메뉴에서 셀 위에 그림 표시를 선택합니다.이미지 개체 추출에 대한 자세한 내용은 이 문서의 Excel 그리드에 이미지 개체 추출 문서를 참조하세요.

Excel 표에 이미지 개체 추출

이 문서의 예제에서 설명한 것처럼 seaborn 및 Matplotlib과 같은 Python 라이브러리는 데이터 시각화를 Excel 셀로 반환할 수 있습니다. 기본적으로 Excel의 Python은 이러한 시각화를 이미지 개체로 반환합니다. 

이미지 개체 셀에서 카드 아이콘을 선택하여 시각화 미리 보기를 확인합니다.

DataFrame 카드 그림 미리 보기를 참조하세요.

Excel 그리드에 이미지를 추출하는 방법에는 두 가지가 있습니다. 이미지를 셀 위에 그림으로 표시하거나 셀 내에 이미지를 표시합니다.

셀 위에 이미지 표시

다음 단계에 따라 이미지를 셀 위에 그림으로 표시합니다.

  1. 이미지 개체가 포함된 셀을 마우스 오른쪽 단추로 클릭하거나 Ctrl+클릭하고 메뉴에서 셀 위에 그림 표시를 선택합니다(또는 바로 가기 키 Ctrl+Alt+Shift+C 사용). 그러면 Excel 그리드 위에 떠 있는 이미지의 복사본이 만들어지고 쉽게 크기를 조정할 수 있습니다. 원래 이미지 개체는 원래 셀에 남아 있습니다.

  2. 그림 이미지를 선택하고 끌어 워크시트 주변으로 이동합니다. 이미지의 모서리와 측면에 있는 노드를 선택하고 끌어 크기를 조정합니다.참조 만들기 아이콘을 사용하여 부동 플롯 시각화를 만듭니다.

셀 내에 이미지 표시

다음 단계에 따라 셀 내에 이미지를 표시합니다.

  1. 이미지 개체를 Excel 값으로 반환합니다. 이미지 개체 셀을 선택하고 수식 입력줄에서 Python 출력 메뉴로 이동한 다음 Excel 값을 선택합니다.   수식 입력줄 옆에 있는 Python 출력 메뉴를 사용하여 출력 형식을 변경합니다. 이제 그림 이미지가 셀 내에 표시됩니다.

    팁: Python 개체와 Excel 값 간에 Python 수식 결과를 토글하려면 바로 가기 키 Ctrl+Alt+Shift+M을 사용합니다. 자세한 바로 가기 키는 Excel의 Python 바로 가기 키를 참조하세요.

  2. 그림 이미지의 크기는 셀 크기에 따라 달라집니다. 셀 크기를 늘리거나 셀을 병합하여 이미지 크기를 늘립니다.

영어가 아닌 언어에 다른 글꼴 사용 

중국어, 한국어 또는 태국어와 같이 라틴 문자가 아닌 알파벳 문자를 사용하는 데이터를 차트로 표시하려면 excel.FontPath사용합니다. 기본적으로 Excel의 Python은 라틴 문자가 아닌 알파벳 문자를 빈 사각형('□')으로 렌더링합니다. 이를 resolve 위해 excel.FontPathexcel 모듈을 사용하여 다른 글꼴을 호출하고 문자를 렌더링할 수 있습니다.

다음 글꼴을 사용할 수 있습니다. 특성은 Python 코드의 excel.FontPath 추가됩니다. 경로는 특성에 의해 호출된 글꼴 파일을 참조합니다.

특성

경로

벵골어

/usr/share/fonts/Vrinda.ttf

CHINESE_SIMPLIFIED

/usr/share/fonts/SimSun.ttf

CHINESE_TRADITIONAL

/usr/share/fonts/MingLiU.ttf

힌디어

/usr/share/fonts/Mangal.ttf

일본어

/usr/share/fonts/Meiryo.ttf

한국어

/usr/share/fonts/Batang.ttf

태국어

/usr/share/fonts/THSarabunPSK.ttf

excel을 사용합니다. 간단한 중국어 그림 레이블을 표시하는 FontPath

다음 스크린샷은 excel.FontPath사용하여 단순화된 한자 문자로 플롯 레이블이 있는 차트를 보여 줍니다. 스크린샷 뒤의 코드 샘플에서는 excel.FontPath.CHINESE_SIMPLIFIED 사용하여 간소화된 중국어 라이브러리의 문자를 표시하는 방법을 보여 줍니다.

문자가 제대로 렌더링된 차트

Excel을 사용하는 코드 샘플입니다. FontPath

이 코드 샘플에서는 excel.FontPath.CHINESE_SIMPLIFIED 사용하여 이전 스크린샷에 표시되는 플롯 레이블에서 플롯 및 간소화된 한자 문자를 생성하는 방법을 보여 줍니다. 

  • import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    # Set the font path. This returns '/usr/share/fonts/simsun.ttf'.
    font_path = excel.FontPath.CHINESE_SIMPLIFIED
    
    # Point the properties to the font path.
    font_properties = FontProperties(fname=font_path)
    plt.rcParams['font.family'] = font_properties.get_name()
    
    # Make the plot.
    myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文')
    
    # Show the plot.
    plt.show()

관련 문서 

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.