๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

HTML์—์„œ Python์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” PyScript (7) ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(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
๋ฐ˜์‘ํ˜•
Comments