Pandas: groupby 및 plot 사용 방법(예제 포함)


다음 방법을 사용하여 Pandas DataFrame으로 그룹화하고 플롯할 수 있습니다.

방법 1: 단일 경로에 여러 선을 그룹화하고 그립니다.

 #define index column
df. set_index ('day', inplace= True )

#group data by product and display sales as line chart
df. groupby (' product ')[' sales ']. plot (legend= True )

방법 2: 개별 하위 플롯에 그룹화 및 선 그리기

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True )

다음 예에서는 다음 pandas DataFrame에서 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 1, 2, 3, 4, 5],
                   ' product ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' sales ': [4, 7, 8, 12, 15, 8, 11, 14, 19, 20]})

#view DataFrame
df

	day product sales
0 1 A 4
1 2 To 7
2 3 To 8
3 4 A 12
4 5 To 15
5 1 B 8
6 2 B 11
7 3 B 14
8 4 B 19
9 5 B 20

방법 1: 단일 경로에 여러 선을 그룹화하고 그립니다.

다음 코드는 DataFrame을 변수 “product”로 그룹화하고 각 제품의 “sales”를 차트에 표시하는 방법을 보여줍니다.

 #define index column
df. set_index (' day ', inplace= True )

#group data by product and display sales as line chart
df. groupby (' product ')[' sales ']. plot (legend= True ) 

팬더의 그룹화와 음모

x축은 날짜, y축은 판매량을 나타내고, 각 행은 개별 제품의 판매량을 나타냅니다.

방법 2: 개별 하위 플롯에 그룹화 및 선 그리기

다음 코드는 변수 “product”를 기준으로 DataFrame을 그룹화하고 개별 하위 플롯에 각 제품의 “판매액”을 표시하는 방법을 보여줍니다.

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True ) 

팬더는 그룹화되어 하위 플롯으로 표시됩니다.

첫 번째 그래프는 A 제품의 매출을 나타내고, 두 번째 그래프는 B 제품의 매출을 보여줍니다.

또한 레이아웃 인수를 사용하여 하위 트레이스의 레이아웃을 지정할 수도 있습니다.

예를 들어, 서브플롯이 행 1개와 열 2개로 구성된 그리드에 있도록 지정할 수 있습니다.

 p.d. pivot_table ( df.reset_index (),
               index=' day ', columns=' product ', values=' sales '
              ). plot (subplots= True , layout=(1,2)) 

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 시각화를 만드는 방법을 설명합니다.

Pandas DataFrame에서 상자 그림을 만드는 방법
Pandas DataFrame에서 원형 차트를 만드는 방법
Pandas DataFrame에서 히스토그램을 만드는 방법

의견을 추가하다

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