πŸ‘©‍πŸ’» λ°±μ—”λ“œ(Back-End)/Node js

HTMLμ—μ„œ Python을 μ‚¬μš©ν•  수 μžˆλŠ” PyScript (7)

μ§•μ§•μ•ŒνŒŒμΉ΄ 2022. 11. 25. 15:12
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” itadventrue λ‹˜μ˜ λΈ”λ‘œκ·Έλ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

https://itadventure.tistory.com/549]

 

νŒŒλ„!(8) - 아보카도 νŒλ§€λŸ‰

μ§€λ‚œ κ²Œμ‹œκΈ€μ— μ—°μž¬λ˜λŠ” κΈ€μž…λ‹ˆλ‹€ - https://itadventure.tistory.com/548 파이슀크립트 도전기(7) - ν•œκΈ€ κ·Έλž˜ν”„! μ§€λ‚œ κ²Œμ‹œκΈ€μ— μ΄μ–΄μ§€λŠ” μ—°μž¬κΈ€μž…λ‹ˆλ‹€ : https://itadventure.tistory.com/547 파이슀크립트 도전기(6

itadventure.tistory.com

 

 

 

 

 

πŸŽ„ μ™ΈλΆ€ csv 데이터 뢈러였기

❗ css μŠ€νƒ€μΌ μ†ŒμŠ€ <pytable.css>

table.dataframe th {
  background-color: #EA6153 !important;
  color: white !important;
  text-align:center !important;
  padding: 5px 15px;
  font-size:9pt !important;
}

table.dataframe td {
  color: black !important;
  text-align:center !important;
  padding: 5px 15px;
  font-size:9pt !important;
}

table.dataframe tr {
    background-color: #FFFFFF !important;
}

table.dataframe tr:nth-child(odd) {
    background-color: #E9E9E9 !important;
}

 

❗ HTML μ†ŒμŠ€μ™€ 파이 슀크립트 <index.html>

<html> 
    <head> 
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> 
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script> 
      <py-env>
        - pandas
        - matplotlib
      </py-env>
    </head>
  <body> 
    <link rel="stylesheet" href="pytable.css"/>
    <py-script>
      <!-- ν‘œλ₯Ό HTML 화면에 μΆ”κ°€ν•˜λŠ” 뢀뢄을 파이썬 ν•¨μˆ˜λ‘œ λ‹¨μˆœν™” -->
      def createElementDiv(name):
          element = document.createElement('div')
          element.id = name
          document.body.append(element)
          return Element(name)
          
      import pandas as pd
      from pyodide.http import open_url
      
      # νŒλ‹€μŠ€μ—μ„œ csv λ₯Ό 데이터 ν”„λ ˆμž„μœΌλ‘œ μ½μ–΄μ˜΄
      df = pd.read_csv(open_url("http://dreamplan7.cafe24.com/pyscript/csv/avocado.csv"))
      
      createElementDiv('output1').write(df)      
    </py-script> 
  </body> 
</html>

- Date : 판맀 λ‚ μ§œ
- AveragePrice :  평균 판맀 가격
- Total Volumn : 총 νŒλ§€λŸ‰

 

 

 

πŸŽ„ μ„ΈλΆ€ ν•­λͺ© 고치기 ( 달 μΆ”κ°€, 월별 λ§€μΆœλŸ‰ )

<html> 
    <head> 
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> 
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script> 
      <py-env>
        - pandas
        - matplotlib
      </py-env>
    </head>
  <body> 
    <link rel="stylesheet" href="pytable.css"/>
    <py-script>
      <!-- ν‘œλ₯Ό HTML 화면에 μΆ”κ°€ν•˜λŠ” 뢀뢄을 파이썬 ν•¨μˆ˜λ‘œ λ‹¨μˆœν™” -->
      def createElementDiv(name):
          element = document.createElement('div')
          element.id = name
          document.body.append(element)
          return Element(name)
          
      import pandas as pd
      from pyodide.http import open_url
      
      # νŒλ‹€μŠ€μ—μ„œ csv λ₯Ό 데이터 ν”„λ ˆμž„μœΌλ‘œ μ½μ–΄μ˜΄
      df = pd.read_csv(open_url("http://dreamplan7.cafe24.com/pyscript/csv/avocado.csv"))
      
      df.insert(2, 'month', df['Date'].str[:7], True)
      
      createElementDiv('output1').write(df)
      
      # 월별 λ§€μΆœλŸ‰ 쑰사
      df_group = df.fillna(0).groupby('month')[['Total Volume']].sum().sort_values(by='month', ascending=True)
      
      createElementDiv('output1').write(df_group)      
    </py-script> 
  </body> 
</html>

❗ 월별 λ§€μΆœμ„ κ΅¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν‘œμ— 월을 μΆ”κ°€

df.insert(2, 'month', df['Date'].str[:7], True)

 

 

❗ μ›”별 λ§€μΆœλŸ‰ -> μ›”λ³„λ‘œ 그룹을 지은 λ‹€μŒ, κ·Έ 합계

# 월별 λ§€μΆœλŸ‰ 쑰사
df_group = df.fillna(0).groupby('month')[['Total Volume']].sum().sort_values(by='month', ascending=True)

 

 

 

 

 

 

728x90
λ°˜μ‘ν˜•