파이썬 & 오픈소스 개발 질문과 답변 게시판
파이썬과 여러 오픈소스 기반 프레임워크 관련 질문 답변 게시판 입니다. 궁금하신 사항을 올려 주시면 빠른 시일내에 답변 드리도록 하겠습니다. 아울러, 개발 과정의 경우 간소화 시킨 문제 재현 코드나 운영일 경우 최근의 특이사항을 올려 주시면 답변 드리는 프런티어 분들이 더욱 상세한 답변을 드릴 수 있으니 많은 도움 되시길 바랍니다.
안녕하세요.
사이트에서 올려주신 내용으로 파이썬 공부를 하고 있는데, 많은 도움에 감사 드립니다.
파이썬 공부를 하면서 회사 업무에 적용을 하고 싶어서, 공부중인데 궁금한 내용을 문의좀 드립니다.
<원본데이터>
제품분류 | 제품코드 | 내외구분 | 거래처 | 납품일자 | 수량 | 프로젝트코드 | 납품연도 | 납품월 |
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 |
---|---|---|---|---|
98 | 포스 바코드 리더기 질문 [1] | 파이썬초보 | 2022.03.22 | 60 |
97 |
파이썬 그래프 관련 질문 드립니다.
[1] ![]() | 바른세상 | 2022.03.15 | 57 |
96 |
request.cookies.get이 안됩니다..
![]() | 권기원 | 2022.02.22 | 69 |
» | 파이썬 정렬 기능 과 시각화 문의 드립니다. [1] | 바른세상 | 2022.02.18 | 74 |
94 | 파이썬 슬라이싱 [2] | 반말 | 2021.03.27 | 276 |
93 | c# 프로젝트 | hhe3522 | 2018.12.04 | 2610 |
92 | 다음 API 지도 데이터 추출 관련 문의 | 이대우1234567 | 2018.11.07 | 2500 |
91 | SQL 서버와 연결 후, 클라이언트 포트 클리어 방법 | 암무거나 | 2018.03.27 | 3609 |
90 | C#에서 MSSQL에 많은 데이터를 빠르게 넣을 수 있는 방법 | 코코라니 | 2018.03.17 | 5265 |
89 | 데이터 싱크 프로그램 제작 질문드립니다. | 베로 | 2017.11.09 | 4113 |
88 | VS Code 로 C# 개발할때.... | 1231234 | 2017.08.31 | 4848 |
87 | C++ 오류 | 베르사유 | 2017.08.10 | 4459 |
86 | EntityFramework 트랜잭션 어떻게 되는건지 궁금합니다 | 능능능 | 2017.08.09 | 4974 |
85 | 라이브러리 구동 샘플 프로그램 | 기타치는퐝동 | 2017.05.26 | 4213 |
84 | 깜빡임 효과 주는 방법 문의 [1] | 방자 | 2017.02.08 | 5850 |
83 | 인터넷 실행 | 후알유? | 2016.12.12 | 5738 |
82 | for문 사용방법 문의 [2] | 방자 | 2016.10.27 | 6689 |
81 | FileStream 사용 시 오류사항 문의 | Lauren | 2016.09.01 | 6252 |
80 | 웹응용프로그램 프로젝트 열기 문의 | hoonsik.kong | 2016.06.13 | 7458 |
79 | MySql과 LINQ to SQL 클래스를 사용하는 중입니다. 문제가 있어서 질문드립니다. [3] | 적신 | 2016.04.26 | 24869 |
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()
참고바랍니다.