>

아래 형식의 데이터가 있으며 내가하려는 것은

1) 지역의 각 값을 반복합니다
2) 각 지역에 대해 집계 된 (범주 전체) 판매 번호의 시계열을 플로팅합니다.

Date |Region |Category | Sales
01/01/2016| USA| Furniture|1
01/01/2016| USA| Clothes |0
01/01/2016| Europe| Furniture|2
01/01/2016| Europe| Clothes |0
01/02/2016| USA| Furniture|3
01/02/2016| USA|Clothes|0
01/02/2016| Europe| Furniture|4
01/02/2016| Europe| Clothes|0 ...

줄거리는 첨부 된 모양이어야합니다 (Excel에서 완료).

그러나 파이썬을 사용하여 아래에서 시도하면 모든 선이 하나의 그림에 나타나기를 원할 때 여러 차트가 표시됩니다.

파이썬 코드 :

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv(r'C:\Users\wusm\Desktop\Book7.csv')

plt.legend()
for index, group in df.groupby(["Region"]):
    group.plot(x='Date',y='Sales',title=str(index))
plt.show()

데이터를 재 포맷하는 짧은 분은 그래프를 한 그림으로 얻는 방법에 대해 조언 해 주시겠습니까?


  • 답변 # 1

    pivot_table 를 사용할 수 있습니다 :

    df = df.pivot_table(index='Date', columns='Region', values='Sales', aggfunc='sum')
    print (df)
    Region      Europe  USA
    Date                   
    01/01/2016       2    1
    01/02/2016       4    3
    
    

    또는 groupby  + 와이즈 비즈  + 와이즈 비즈 :

    sum
    
    

    그리고 unstack

    df = df.groupby(['Date', 'Region'])['Sales'].sum().unstack(fill_value=0)
    print (df)
    Region      Europe  USA
    Date                   
    01/01/2016       2    1
    01/02/2016       4    3
    
    
    DataFrame.plot

관련 자료

  • 이전 sql server - SQL 성능 최적화 어떤 쿼리가 더 좋을까요?
  • 다음 javascript - NavBar를 작성하여 조치 수행