Guidelines

Pandas둜 월별, μ œν’ˆλ³„ 맀좜 λΆ„μ„ν•˜κΈ°

μ—¬λŸ¬ μ œν’ˆμ˜ 월별 νŒλ§€λŸ‰, 객단가, 맀좜 데이터λ₯Ό λΉ λ₯΄κ²Œ λΆ„μ„ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”?

데이터λ₯Ό λΆ„μ„ν•˜λ‹€ 보면 월별 및 μ œν’ˆλ³„λ‘œ λ‹€μ–‘ν•œ ν•­λͺ©μ— λŒ€ν•œ 톡계λ₯Ό 계산해야 ν•  λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

Pandasλ₯Ό μ‚¬μš©ν•˜λ©΄ μ΄λŸ¬ν•œ λ³΅μž‘ν•œ μž‘μ—…λ„ μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” 월별, μ œν’ˆλ³„λ‘œ 객단가, νŒλ§€λŸ‰, 맀좜 데이터λ₯Ό λΆ„μ„ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.


월별, μ œν’ˆλ³„ 데이터 뢄석이 ν•„μš”ν•  λ•Œ

예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 1μ›”λΆ€ν„° 3μ›”κΉŒμ§€ A, B μ œν’ˆμ— λŒ€ν•œ 객단가와 νŒλ§€λŸ‰ 데이터가 μžˆλ‹€κ³  κ°€μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

월별, μ œν’ˆλ³„ 데이터 μ˜ˆμ‹œ
import pandas as pd # μ˜ˆμ‹œ 데이터 생성 data = { 'μ›”': ['2023-01', '2023-01', '2023-02', '2023-02', '2023-03', '2023-03'], 'μ œν’ˆ': ['A', 'B', 'A', 'B', 'A', 'B'], '객단가': [20, 30, 22, 28, 21, 29], 'νŒλ§€λŸ‰': [100, 150, 120, 130, 110, 140], } df = pd.DataFrame(data) # 맀좜 계산 df['맀좜'] = df['객단가'] * df['νŒλ§€λŸ‰'] print(df)

μœ„ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 λ°μ΄ν„°ν”„λ ˆμž„μ΄ μƒμ„±λ©λ‹ˆλ‹€.

월별, μ œν’ˆλ³„ 데이터
μ›” μ œν’ˆ 객단가 νŒλ§€λŸ‰ 맀좜 0 2023-01 A 20 100 2000 1 2023-01 B 30 150 4500 2 2023-02 A 22 120 2640 3 2023-02 B 28 130 3640 4 2023-03 A 21 110 2310 5 2023-03 B 29 140 4060

이제 이 λ°μ΄ν„°ν”„λ ˆμž„μ„ λ°”νƒ•μœΌλ‘œ μ œν’ˆλ³„, μ›”λ³„λ‘œ μš”μ•½λœ 데이터λ₯Ό ꡬ성해 λ³΄κ² μŠ΅λ‹ˆλ‹€.


μ œν’ˆλ³„/월별 데이터 μš”μ•½ν•˜κΈ°

λ¨Όμ € μ œν’ˆλ³„λ‘œ 총 νŒλ§€λŸ‰κ³Ό λ§€μΆœμ„ μš”μ•½ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

κ·Έλ£Ήν™”λœ 데이터λ₯Ό μš”μ•½ν•˜λ €λ©΄ groupby ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›”λ³„λ‘œ 데이터λ₯Ό κ·Έλ£Ήν™”ν•˜κ³ , agg ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 각 그룹에 λŒ€ν•œ μš”μ•½ 톡계λ₯Ό 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

'agg' ν•¨μˆ˜λŠ” λ°μ΄ν„°ν”„λ ˆμž„μ˜ 데이터λ₯Ό 집계(aggregate)ν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λ‘œ, agg('mean')은 각 그룹의 평균값을 κ³„μ‚°ν•˜κ³ , agg('sum')은 각 그룹의 합계λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.


μ œν’ˆλ³„ 총 맀좜 계산

μ œν’ˆλ³„ 총 λ§€μΆœμ€ df.groupby('μ œν’ˆ')κ³Ό 같이 μ œν’ˆμœΌλ‘œ κ·Έλ£Ήν™”ν•΄ 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ œν’ˆλ³„ 총 맀좜 및 νŒλ§€λŸ‰ μš”μ•½
import pandas as pd data = { 'μ›”': ['2023-01', '2023-01', '2023-02', '2023-02', '2023-03', '2023-03'], 'μ œν’ˆ': ['A', 'B', 'A', 'B', 'A', 'B'], '객단가': [20, 30, 22, 28, 21, 29], 'νŒλ§€λŸ‰': [100, 150, 120, 130, 110, 140], } df = pd.DataFrame(data) # 맀좜 계산 df['맀좜'] = df['객단가'] * df['νŒλ§€λŸ‰'] # μ œν’ˆλ³„ 총 맀좜 및 νŒλ§€λŸ‰ μš”μ•½ result = df.groupby('μ œν’ˆ').agg({'νŒλ§€λŸ‰': 'sum', '맀좜': 'sum'}) print(result)

이 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 μš”μ•½ 데이터가 좜λ ₯λ©λ‹ˆλ‹€.

월별, μ œν’ˆλ³„ μš”μ•½ 데이터
νŒλ§€λŸ‰ 맀좜 μ œν’ˆ A 330 6950 B 420 12200

월별 총 맀좜 계산

월별 총 λ§€μΆœμ€ df.groupby('μ›”')κ³Ό 같이 μ›”λ‘œ κ·Έλ£Ήν™”ν•΄ 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.

월별 총 맀좜 및 νŒλ§€λŸ‰ μš”μ•½
...(μƒλž΅)... # 월별 총 맀좜 및 νŒλ§€λŸ‰ μš”μ•½ result = df.groupby('μ›”').agg({'νŒλ§€λŸ‰': 'sum', '맀좜': 'sum'})

이 μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€μŒκ³Ό 같은 κ²°κ³Όκ°€ 좜λ ₯λ©λ‹ˆλ‹€.

월별 μš”μ•½ 데이터
νŒλ§€λŸ‰ 맀좜 μ›” 2023-01 250 6500 2023-02 250 6280 2023-03 250 6370

ν”Όλ²— ν…Œμ΄λΈ”λ‘œ 데이터 μž¬κ΅¬μ„±ν•˜κΈ°

더 λ‚˜μ•„κ°€, 데이터λ₯Ό ν”Όλ²— ν…Œμ΄λΈ”λ‘œ μž¬κ΅¬μ„±ν•˜μ—¬ νŠΉμ • ν•­λͺ©μ„ κΈ°μ€€μœΌλ‘œ 데이터λ₯Ό 비ꡐ할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” 각 μ›”λ³„λ‘œ μ œν’ˆλ³„ λ§€μΆœμ„ λΉ„κ΅ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

월별, μ œν’ˆλ³„ 맀좜 ν”Όλ²— ν…Œμ΄λΈ”
# 월별, μ œν’ˆλ³„ 맀좜 ν”Όλ²— ν…Œμ΄λΈ” ν”Όλ²—_맀좜_ν…Œμ΄λΈ” = df.pivot_table(values='맀좜', index='μ›”', columns='μ œν’ˆ', aggfunc='sum', fill_value=0) print(ν”Όλ²—_맀좜_ν…Œμ΄λΈ”)

κ²°κ³ΌλŠ” λ‹€μŒκ³Ό 같이 좜λ ₯λ©λ‹ˆλ‹€:

월별, μ œν’ˆλ³„ 맀좜 ν”Όλ²— ν…Œμ΄λΈ”
μ œν’ˆ A B μ›” 2023-01 2000 4500 2023-02 2640 3640 2023-03 2310 4060

μ΄λ ‡κ²Œ ν•˜λ©΄ 각 μ›”λ³„λ‘œ μ œν’ˆ A와 B의 λ§€μΆœμ„ ν•œλˆˆμ— 비ꡐ할 수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

Pandasμ—μ„œ agg ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ 데이터λ₯Ό κ·Έλ£Ήν™”ν•  수 μžˆλ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result