Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Pandas DataFrame에서 값을 그룹화하는 방법

<시간/>

Groupby 값을 계산하려면 Pandas DataFrame의 groupby(), size() 및 unstack() 메서드를 사용합니다. 먼저 3개의 열이 있는 DataFrame을 만듭니다. -

dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]})

이제 groupby 값은 groupby() 메서드로 계산됩니다. 개수에는 size() 및 unstack()을 사용합니다. unstack()은 새로운 수준의 열 레이블을 제공합니다. -

dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0)

예시

다음은 전체 코드입니다 -

import pandas as pd

# create a dataframe with 3 columns
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Electronics', 'Computer', 'Mobile Phone'],'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Camera', 'Graphic Card', 'Earphone'],'Quantity': [10, 50, 10, 20, 25, 50]})

# dataframe
print"Dataframe...\n",dataFrame

# count and unstack
dataFrame = dataFrame.groupby(['Product Category', 'Product Name', 'Quantity']).size().unstack(fill_value=0)

print"\nResultant DataFrame...\n",dataFrame

출력

이것은 다음과 같은 출력을 생성합니다 -

Dataframe...
   Product Category   Product Name   Quantity
0         Computer       Keyboard         10
1     Mobile Phone        Charger         50
2      Electronics        SmartTV         10
3      Electronics         Camera         20
4         Computer   Graphic Card         25
5     Mobile Phone       Earphone         50

Resultant DataFrame...
Quantity                          10   20   25   50
Product Category   Product Name
Computer           Graphic Card   0    0    1    0
                   Keyboard       1    0    0    0
Electronics        Camera         0    1    0    0
                   SmartTV        1    0    0    0
Mobile Phone       Charger        0    0    0    1
                   Earphone       0    0    0    1