안녕하세요.
사이트에서 올려주신 내용으로 파이썬 공부를 하고 있는데, 많은 도움에 감사 드립니다.
파이썬 공부를 하면서 회사 업무에 적용을 하고 싶어서, 공부중인데 궁금한 내용을 문의좀 드립니다.
<원본데이터>
제품분류 | 제품코드 | 내외구분 | 거래처 | 납품일자 | 수량 | 프로젝트코드 | 납품연도 | 납품월 |
CT-12 | A | 내수 | 삼성전자 | 2020-01-10 | 2 | CTM-20-01 | 2020 | 1 |
CT-12 | B | 내수 | LG전자 | 2020-04-07 | 3 | CTM-20-02 | 2020 | 4 |
CR-10 | C | 수출 | 애플 | 2020-05-01 | 2 | CTM-20-03 | 2020 | 5 |
CB-11 | A | 내수 | 자화전자 | 2021-05-13 | 4 | CTM-20-04 | 2021 | 5 |
CC-13 | B | 내수 | 대우전자 | 2021-05-15 | 3 | CTM-20-05 | 2021 | 5 |
CC-13 | C | 내수 | 대우전자 | 2021-05-15 | 5 | CTM-20-05 | 2021 | 5 |
파이썬 명령 : card.groupby(['납품연도', '제품코드'])['수량'].sum()
<실행후 결과>
납품연도 제품코드 수량
2020 a 2
b 3
c 2
2021 a 4
b 3
c 5
문의 1. 연도별, 수량 기준으로 내림차순하려고 하는데 어떻게 적용을 해야 되는건지 문의 드립니다.
<희망하는 결과 값>
납품연도 제품코드 수량
2020 b 3
a 2
c 2
2021 c 5
a 4
b 3
문의 2. 위의 결과를 가지고 연도별, 제품별로 수량을 가지고 그래프를 표현하고 싶은데, 도움을 주시면 감사 드리겠습니다.
Comment 1
-
지영아빠
2022.02.20 22:34
No. | Subject | Author | Date | Views |
---|---|---|---|---|
Notice | 2023년 1월 - SQLER의 업데이트 강좌 리스트 | 코난(김대우) | 2023.01.02 | 451 |
101 | [FAQ] Yield는 무엇인가요? | 코난(김대우) | 2022.10.18 | 42 |
100 | python 중복 값 관련 질문 [1] | rlagu**** | 2022.10.13 | 67 |
99 |
NaT NaN 관련 질문이요
[1] ![]() | solkim | 2022.07.11 | 210 |
98 | 포스 바코드 리더기 질문 [1] | 파이썬초보 | 2022.03.22 | 251 |
97 |
파이썬 그래프 관련 질문 드립니다.
[1] ![]() | 바른세상 | 2022.03.15 | 176 |
96 |
request.cookies.get이 안됩니다..
![]() | 권기원 | 2022.02.22 | 137 |
» | 파이썬 정렬 기능 과 시각화 문의 드립니다. [1] | 바른세상 | 2022.02.18 | 174 |
94 | 파이썬 슬라이싱 [2] | 반말 | 2021.03.27 | 336 |
93 | c# 프로젝트 | hhe3522 | 2018.12.04 | 2669 |
92 | 다음 API 지도 데이터 추출 관련 문의 | 이대우1234567 | 2018.11.07 | 2551 |
91 | SQL 서버와 연결 후, 클라이언트 포트 클리어 방법 | 암무거나 | 2018.03.27 | 3655 |
90 | C#에서 MSSQL에 많은 데이터를 빠르게 넣을 수 있는 방법 | 코코라니 | 2018.03.17 | 5474 |
89 | 데이터 싱크 프로그램 제작 질문드립니다. | 베로 | 2017.11.09 | 4161 |
88 | VS Code 로 C# 개발할때.... | 1231234 | 2017.08.31 | 4918 |
87 | C++ 오류 | 베르사유 | 2017.08.10 | 4500 |
86 | EntityFramework 트랜잭션 어떻게 되는건지 궁금합니다 | 능능능 | 2017.08.09 | 5151 |
85 | 라이브러리 구동 샘플 프로그램 | 기타치는퐝동 | 2017.05.26 | 4275 |
84 | 깜빡임 효과 주는 방법 문의 [1] | 방자 | 2017.02.08 | 5980 |
83 | 인터넷 실행 | 후알유? | 2016.12.12 | 5822 |
82 | for문 사용방법 문의 [2] | 방자 | 2016.10.27 | 6765 |
group by 결과는 groupby 칼럼 자체가 index가 되기 때문에 정렬하기 어렵습니다.
원하는 결과는 아니더라도
dat = [
{'yy' : 2020, 'cd' : 'A', 'qty' : 2},
{'yy' : 2020, 'cd' : 'B', 'qty' : 3},
{'yy' : 2020, 'cd' : 'C', 'qty' : 2},
{'yy' : 2021, 'cd' : 'A', 'qty' : 4},
{'yy' : 2021, 'cd' : 'B', 'qty' : 3},
{'yy' : 2021, 'cd' : 'C', 'qty' : 5},
]
card = pd.DataFrame(dat)
#### 이런 결과를 원하시는 것 같음...
card.sort_values(by=['yy', 'qty'], ascending=[True, False])
차트로 visual하면 대략 아래의 코드일 것 같습니다
import matplotlib.pyplot as plt
df_A = card[card['cd'] == 'A'].groupby('yy').sum()
df_B = card[card['cd'] == 'B'].groupby('yy').sum()
df_C = card[card['cd'] == 'C'].groupby('yy').sum()
index = np.arange(len(card['cd'].unique()))
label = ['', '2020', '2021']
bar_width=0.3
p1 = plt.bar(bar_width, df_A.loc[[2020], 'qty'] , bar_width, color='blue')
p2 = plt.bar(2*bar_width, df_B.loc[[2020], 'qty'] , bar_width, color='red')
p3 = plt.bar(3*bar_width, df_C.loc[[2020], 'qty'] , bar_width, color='green')
p4 = plt.bar(5*bar_width, df_A.loc[[2021], 'qty'] , bar_width, color='blue')
p5 = plt.bar(6*bar_width, df_B.loc[[2021], 'qty'] , bar_width, color='red')
p6 = plt.bar(7*bar_width, df_C.loc[[2021], 'qty'] , bar_width, color='green')
plt.title('product_by_YY')
plt.xlabel('YY')
plt.ylabel('qty')
plt.xticks(index, label)
plt.show()
참고바랍니다.