(¿£Áö´Ï¾î¸¦
À§ÇÑ) ÆÄÀ̽㠽ÃÀÛÇϱâ[12]
³»¿ë : pandas µ¥ÀÌÅÍ Á¶ÀÛ/ºÐ¼®
ÂüÁ¶ : https://wikidocs.net/book/7188 (ÆÄÀ̽㠿ÏÀüÁ¤º¹½Ã¸®Áî 2Æí pandas dataframe¿ÏÀüÁ¤º¹)
0.½ÃÀÛÇϸç
pandas´Â
pythonÀ¸·Î µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ°í ºÐ¼®ÇÏ´Â ¶óÀ̺귯¸®´Ù. ¿ì¸®°¡ Á¢ÇÏ´Â µ¥ÀÌÅ͵éÀÌ ´ëºÎºÐ Å×À̺í ÇüÅ´Ù. ¿¹¸¦ µé¾î ±¸Á¶Çؼ®À» ÇÑ °á°ú¶ó°í Çϸé
ºÎÀ纰·Î ºÎÀç·ÂÀÌ ³ª¿Ã °ÍÀÌ´Ù. Å×À̺íÀÇ ÇàÀÌ ºÎÀç¹øÈ£¿Í ³ëµå·Î ±¸¼ºµÇ°í ¿ÀÌ ºÎÀç·ÂÀÇ Á¾·ù Áï Ãà·Â,Àü´Ü·Â µîÀÏ °ÍÀÌ´Ù. ¾÷¹«¿¡¼ ÀÌ·± µ¥ÀÌÅÍ´Â
´ëºÎºÐ ¿¢¼¿·Î ó¸®ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÇàÀÇ °¹¼ö°¡ ¼ö¹é°³ Á¤µµ¸é Å« ¹®Á¦°¡ ¾øÁö¸¸ ¼öõ°³ ¼ö¸¸°³¶ó¸é ó¸®Çϱ⠽±Áö ¾Ê´Ù. pandas´Â ÀÌ·± µ¥ÀÌÅ͵éÀ»
½±°Ô ó¸®ÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù.
1. pandas¼³Ä¡ È®ÀÎ
anaconda¸¦
¼³Ä¡Çß´Ù¸é pandasµµ °°ÀÌ ¼³Ä¡µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. È®ÀÎÇغ¸±â À§Çؼ anaconda prompt¸¦ ¶ç¿ì°í pip show pandas¶ó°í ÀÔ·ÂÇغ¸ÀÚ.
(base)
D:\dev\pandas>pip show pandas
Name: pandas
Version: 1.3.4
Summary: Powerful data structures for data analysis, time series, and
statistics
Home-page: https://pandas.pydata.org
Author: The Pandas Development Team
Author-email: pandas-dev@python.org
License: BSD-3-Clause
Location: c:\programdata\anaconda3\lib\site-packages
Requires: numpy, python-dateutil, pytz
Required-by: pandasgui, pandastable, pix2tex, seaborn, statsmodels
|
pandas¿¡
°üÇÑ Á¤º¸µéÀ» º¼ ¼ö ÀÖ´Ù. ¹ö¹øÀº 1.3.4ÀÌ°í ȨÆäÀÌÁö´Â https://pandas.pydata.org
±×¸®°í ¼³Ä¡µÇ¾î ÀÖ´Â µð·ºÅ丮´Â c:\programdata\anaconda3\lib\site-package¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
¸¸ÀÏ
anaconda¸¦ ¼³Ä¡ÇÏÁö ¾Ê¾Æ pandas°¡ ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù¸é ¸í·Éâ¿¡¼ pip install pandas¶ó°í ÀÔ·ÂÇؼ pandas¸¦ ¼³Ä¡Çϸé
µÈ´Ù.
2. pandas series ¿Í dataframe
pandas´Â
series¶ó´Â µ¥ÀÌÅÍ Çü½Ä°ú dataframeÀ̶ó´Â µ¥ÀÌÅÍ Çü½ÄÀÌ ÀÖ´Ù. series´Â 1Â÷¿ø dataframeÀº 2Â÷¿øÀ¸·Î ÀÌÇØÇÏ¸é µÈ´Ù.
µÎ µ¥ÀÌÅÍ Çü½ÄÀÇ °³³äÀ» Àß ÀÌÇØÇÏ°í ÀÖÀ» ÇÊ¿ä°¡ ÀÖ´Ù. ´ëºÎºÐ 2Â÷¿ø ÇüÅÂÀÇ dataframeÀ» »ç¿ëÇÏÁö¸¸ 1Â÷¿øÀÎ series¸¦ ´Ù·ï¾ß ÇÏ´Â
°æ¿ìµµ Á¾Á¾ Àֱ⠶§¹®´Ù.
¿¹Á¦·Î
¾Æ·¡¿Í °°ÀÌ Áß°£°í»ç ¼ºÀû¿¡ ´ëÇؼ ó¸®ÇÏ´Â ÀÛ¾÷À» pandas¸¦ ÀÌ¿ëÇÑ´Ù°í °¡Á¤ÇÏ°Ú´Ù. Çлý¼ö°¡ ¼öõ¸íÀÌ°í °ú¸ñ¼öµµ ¸¹´Ù°í »ó»óÇغ¸ÀÚ.
½Ç½ÀÀº
jupyter notebookÀ» ÀÌ¿ëÇؼ ÁøÇàÇϵµ·Ï ÇÏ°Ú´Ù. notebookÀ» »ç¿ëÇϸé À¥È¯°æÀ̱⠶§¹®¿¡ dataframeÀ» º¸¿©ÁÙ ¶§ ÈξÀ °¡µ¶¼ºÀÌ
³ô´Ù. ¾Æ¹« µð·ºÅ丮³ª ¸¸µé°í ±× µð·ºÅ丮¿¡¼ jupyter notebookÀ» ½ÇÇàÇÏ°í »õ·Î¿î notebookÀ» Çϳª ¸¸µé°í ½ÃÀÛÇÏÀÚ.
pandas¸¦
»ç¿ëÇϱâ À§Çؼ import¸¦ Çϴµ¥ º¸ÅëÀº º°ÄªÀ¸·Î pd¶ó°í ¾´´Ù.
1) pandas Series
series´Â 1Â÷¿ø µ¥ÀÌÅÍÀÌ´Ù. python¿¡¼ 1Â÷¿ø µ¥ÀÌÅÍ´Â ¸®½ºÆ®µµ
ÀÖ°í µñ¼Å³Ê¸®µµ ÀÖ´Ù´Â °ÍÀ» ÀÌ¹Ì ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î [84,99,80]Àº ¸®½ºÆ®´Ù. ±¸Á¶¿ªÇÐ Á¡¼ö¸¦ ¸®½ºÆ®·Î ¸¸µé¸é ÀÌ·¸°Ô ¸¸µé¸é
µÈ´Ù.
strlst = [84,99,80] ¶ó°í Çϸé strlst ¶ó´Â list°¡
¸¸µé¾îÁ³À» °ÍÀÌ´Ù. ÀÌ°ÍÀ» pandas series·Î ¸¸µå´Â ¹æ¹ýÀº pd.Series(strlst)¶ó°í pandasÀÇ SeriesÇÔ¼ö¸¦ Àû¿ëÇØÁÖ´Â
°ÍÀÌ´Ù. SeriesÀÇ Ã¹±ÛÀÚ°¡ ´ë¹®ÀÚÀÎ °ÍÀ» ÁÖÀÇÇÏÀÚ. ¼Ò¹®ÀÚ·Î ¾²¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. strlst¶ó´Â ¸®½ºÆ®¿¡ pd.SeriesÇÔ¼ö¸¦ Àû¿ëÇؼ
strsrz¶ó´Â º¯¼ö¿¡ ÇÒ´çÇÏ°í Ãâ·ÂÇϵµ·Ï Çß´Ù.
OutÀ» º¸¸é ¸®½ºÆ®¿¡ ¾ø´ø °ÍÀÌ º¸ÀδÙ. °ª ¾Õ¿¡ 0 , 1, 2 °¡ ºÙ¾î
ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» À妽º¶ó°í ÇÑ´Ù. Series´Â À妽º¸¦ °¡Áö°í ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. dataframe¿ª½Ã À妽º¸¦ °¡Áö°í ÀÖ´Ù.
À妽º´Â µ¥ÀÌÅ͸¦ ´Ù·ç´Âµ¥ ÀÖ¾î Áß¿äÇÑ ¿ä¼Ò°¡ µÈ´Ù.
À妽º´Â °ª¿¡ Á¢±ÙÇÒ ¶§ ¾²ÀδÙ. ¿¹¸¦ µé¾î strsrzÀÇ À妽º 1ÀÎ °ªÀ»
¾Ë°í ½Í´Ù¸é strsrz[1]À¸·Î Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ÀÌ °³³äÀº ¸®½ºÆ®¿¡ Á¢±ÙÇÒ ¶§¿Í Å« Â÷ÀÌ´Â ¾ø´Ù.
strlst[1]µµ °°Àº °á°ú¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÇÏÁö¸¸ pandas
SeriesÀÇ index´Â »ç¿ëÀÚ°¡ ¿øÇÏ´Â °ÍÀ¸·Î ³ÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ list¿ÍÀÇ Â÷ÀÌÁ¡ÀÌ´Ù.
¾Æ·¡¿Í °°ÀÌ Series¸¦ ¸¸µé¸é¼ index¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
index¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î 0ºÎÅÍ À妽º°¡ »ý¼ºµÇ´Â °ÍÀÌ°í À妽º¸¦
ÁöÁ¤ÇÏ¸é ±×´ë·Î À妽º°¡ »ý¼ºµÈ´Ù. ¹®Àڷεµ °¡´ÉÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ´ç¿¬È÷ °ª¿¡ Á¢±ÙÇÒ ¶§µµ ¹®ÀÚ¿ À妽º¸¦ ÀÌ¿ëÇؼ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦
µé¾î È«±æµ¿ÀÇ ÅäÁú¿ªÇÐ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é geosrz[¡®È«±æµ¿¡¯]¶ó°í ÇÏ¸é µÈ´Ù.
ÀÌ·¸°Ô ¹®ÀÚ¿·Î °ª¿¡ Á¢±ÙÇÏ´Â ¹æ½ÄÀº µñ¼Å³Ê¸®¿Í ºñ½ÁÇÏ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ»
°ÍÀÌ´Ù. µñ¼Å³Ê¸®´Â key¿Í valueÀÇ ½ÖÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ. hyddic={'È«±æµ¿':86,'Á¤¾à¿ë':90, 'À̸ù·æ':89}
Series¿Í dictionary´Â À¯»çÇÑ Á¡ÀÌ ¸¹´Ù. ±×·¡¼ µñ¼Å³Ê¸®¸¦
Series·Î ¸¸µå´Â °ÍÀº ¸Å¿ì °£´ÜÇÏ´Ù. index¸¦ º°µµ·Î ÁöÁ¤ÇØÁÙ ÇÊ¿ä°¡ ¾ø´Ù. µñ¼Å³Ê¸®¿¡´Â ÀÌ¹Ì key°ªÀÌ Àֱ⠶§¹®ÀÌ´Ù.
½Ã¸®ÁîÀÇ index¿Í value¸¦ º°µµ·Î ÃëÇÒ ¼ö ÀÖ´Ù. index¸ñ·ÏÀº
index¶ó´Â ¼Ó¼ºÀ» °ª ¸ñ·ÏÀº values¶ó´Â ¼Ó¼ºÀ» ÀÌ¿ëÇÑ´Ù. hydsrzÀÇ index¿Í °ªµéÀ» »Ì¾Æº¸ÀÚ.
½Ã¸®ÁîÀÇ Æ¯Â¡ ÁßÀÇ Çϳª´Â ¹Ù·Î ½Ã¸®Áî¿¡ À̸§À» ºÎ¿©ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
º¯¼ö¸í hydsrz ÀÌ°Í ¸»°í ¹®ÀÚ¿·Î À̸§À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
¿¹¸¦ µé¾î hydsrz¿¡ ¡®¼ö¸®ÇÐÁ¡¼ö¡¯¶ó´Â À̸§À» ÁöÁ¤ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ
ÇÏ¸é µÈ´Ù.
hydsrz.name='¼ö¸®ÇÐÁ¡¼ö'
hydsrz¸¦ Ãâ·ÂÇغ¸¸é À̸§ÀÌ ¡®¼ö¸®ÇÐÁ¡¼ö¡¯ ¶ó´Â °ÍÀ» º¸¿©ÁØ´Ù.
À妽º¿¡µµ À̸§À» ÁÙ ¼ö ÀÖ´Ù.
SeriesÀÇ À妽º¸¦ º¯°æÇÏ·Á¸é index¸¦ Á÷Á¢ ÁöÁ¤ÇØÁÖ¸é µÈ´Ù. À̸§
¾Õ¿¡ ¼ýÀÚ¸¦ ºÙÀÎ °ÍÀ¸·Î ¼öÁ¤Çß´Ù.
2) pandas Dataframe
¾Õ¿¡¼
pandasÀÇ Series¿¡ ´ëÇؼ ¾Ë¾ÆºÃ´Ù. ÀÌÁ¦ 2Â÷¿øÀÇ Daraframe¿¡ ´ëÇؼ ¾Ë¾Æº¸ÀÚ. ¾ÕÀÇ Áß°£°í»ç Á¡¼ö¸¦ ´Ù½ÃÇѹø º¸ÀÚ.
¿©±â¿¡´Â
4°³ÀÇ Çà°ú 4°³ÀÇ ¿ÀÌ ÀÖ´Ù. ÇÏÁö¸¸ ùÇàÀº °ú¸ñ¸íÀ» ³ªÅ¸³»±â À§ÇÑ ÇàÀÌ´Ù. ±×¸®°í ù ¿Àº À̸§À» ³ªÅ¸³»´Â ÇàÀÌ´Ù. ¼ø¼öÇÑ µ¥ÀÌÅÍ´Â 3°³ÀÇ
Çà°ú 3°³ÀÇ ¿À̶ó°í ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» pandas DataframeÀ¸·Î ¸¸µé¾îº¸ÀÚ.
¿©·¯°¡Áö
¹æ¹ýÀÌ ÀÖÁö¸¸ ¿ì¼± µñ¼Å³Ê¸®¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. µñ¼Å³Ê¸®ÀÇ key°¡ ¿ÀÇ À̸§ÀÌµÇ°í ¸®½ºÆ®°¡ ¿ÀÇ °ªÀÌ µÇ´Â °³³äÀÌ´Ù. ¿ì¼± middicÀ̶ó´Â
µñ¼Å³Ê¸®¸¦ ¸¸µç ÈÄ¿¡ pd.DaraFrame(middic)À¸·Î pandas DataFrameÀ» ¸¸µé¾ú´Ù. notebookÀÇ ÀåÁ¡Àº
DataFrameÀÇ ¸ð¾çÀ» Å×À̺í·Î º¸±â ÁÁ°Ô º¸¿©Áشٴ °ÍÀÌ´Ù.
ÀÚ
ÀÌÁ¦ ù DataFrameÀ» ¸¸µé¾ú´Ù. ¼ø¼öÇÑ °ª¸¸ ³Ö¾ú°í À̸§À» DataFrame¿¡ Æ÷ÇÔ½ÃÅ°Áö ¾Ê¾Ò´Ù. ÀÌÀ¯´Â ÀÌ·¸´Ù. ÇöÀç ÀÌ
DataFrame¿¡´Â ¼ø¼öÇÑ °ª µ¥ÀÌÅ͸¸ µé¾î ÀÖ´Ù. index´Â 0,1,2ÀÌ·±½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. ±×·±µ¥ ¿ì¸®°¡ Á¤¾à¿ëÀÇ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é Á¤¾à¿ëÀÇ
¼ø¼(index)ÀÎ 1À» ¾Ë¾Æ¾ß ÇÑ´Ù. ±×·¡¼ ¾ÕÀÇ Series¿¡¼Ã³·³ index¸¦ À̸§À¸·Î ÁöÁ¤ÇØÁÖ°í ½ÍÀº °ÍÀÌ´Ù. index¸¦ À̸§À¸·Î ÇسõÀ¸¸é
À̸§À¸·Î µ¥ÀÌÅÍ¿¡ Á¢±ÙÀÌ °¡´ÉÇϱ⠶§¹®¿¡ ÈξÀ ÆíÇÒ °ÍÀÌ´Ù.
Series¿¡¼
Çß´ø °Íó·³ index¸¦ ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.
middf.index=['È«±æµ¿','Á¤¾à¿ë','À̸ù·æ']
ÀÌ
DataFrameÀÇ Çà index´Â ¡®È«±æµ¿¡¯, ¡®Á¤¾à¿ë¡¯,¡¯À̸ù·æ¡¯ÀÌ´Ù. ¸¶Âù°¡Áö·Î ¿ À妽º´Â ¡®±¸Á¶¿ªÇС¯, ¡®ÅäÁú¿ªÇС¯, ¡®¼ö¸®ÇС¯ÀÌ´Ù.
¿ À妽º´Â index¶ó°í ºÎ¸£Áö ¾Ê°í columns¶ó°í ºÎ¸¥´Ù. index¿Í columns¸¦ Ãâ·ÂÇغ¸¸é ¾Æ·¡¿Í °°´Ù.
±×·¯¸é
È«±æµ¿ÀÇ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é middf[¡®È«±æµ¿¡¯]ÀÌ·¸°Ô ÇÏ¸é µÉ±î? ¾Æ´Ï´Ù. key ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. key¿¡·¯´Â ±×·± key°¡ ¾ø´Ù´Â °ÍÀÌ´Ù.
±âº»ÀûÀ¸·Î DataFrameÀº ¿ ¿ì¼±À̶ó°í »ý°¢ÇÏ´Â °ÍÀÌ ÆíÇÏ´Ù. ±×·¡¼ middf[¡®¼ö¸®ÇС¯]Àº °¡´ÉÇÏ´Ù.
±×·¸´Ù¸é
È«±æµ¿ÀÇ Á¡¼ö¸¦ ¾Ë¾Æº¸·Á¸é ¾î¶»°Ô ÇؾßÇÒ±î? ¿©±â¼ºÎÅÍ´Â DataFrame Ŭ·¡½ºÀÇ ¿©·¯°¡Áö ÇÔ¼öµéÀ» ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú´Ù. ¿øÇÏ´Â ±â´ÉÀÌ ÀÖ´Ù¸é
±¸±Û¿¡¼ ã¾Æº¸¸é µÈ´Ù. ¿¹¸¦ µé¾î¼ È«±æµ¿ÀÇ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é °Ë»öÀ» ÀÌ·¸°Ô ÇÏ¸é µÉ °ÍÀÌ´Ù. pandas get row by index °Ë»ö°á°ú¸¦
¸î±ºµ¥ ã¾Æº¸¸é locÇÔ¼ö°¡ ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. DataFrameÀÇ ±âº»ÀûÀÎ °³³äÀ» ¾Ë°í ÀÖ´Ù¸é ±¸±Û¸µÀ¸·Î ÀÚ½ÅÀÌ ¿øÇÏ´Â ÀÛ¾÷À»
ÇÏ´Â ¹æ¹ýÀ» ã¾Æº¸±â¸¦ ±ÇÀåÇÑ´Ù.
-
loc[rowindex, columnindex]
locÇÔ¼ö´Â Çà°ú ¿ index¸¦ ÀÌ¿ëÇؼ ÇØ´ç °ªÀ» ÃëÇÒ ¼ö ÀÖ´Ù.
È«±æµ¿ÀÇ ¼¼ °ú¸ñ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é middf.loc[¡®È«±æµ¿¡¯]¶ó°í ÀÔ·ÂÇϸé
µÇ°í È«±æµ¿ÀÇ ¼ö¸®ÇÐ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é middf.loc[¡®È«±æµ¿¡¯,¡¯¼ö¸®ÇС¯]ÀÌ·¸°Ô ÀÔ·ÂÇÏ¸é µÈ´Ù.
-
iloc[rowindex, columnindex]
locÀÌ Çà°ú ¿ÀÇ À̸§À» ÀÌ¿ëÇؼ ¼±ÅÃÇß´Ù¸é ilocÀº Çà¹øÈ£,¿¹øÈ£¸¦
ÀÌ¿ëÇؼ dataframeÀÇ ÀϺθ¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. È«±æµ¿ÀÇ Á¡¼ö¸¦ ¾Ë°í ½Í´Ù¸é È«±æµ¿ÀÇ Çà¹øÈ£ÀÎ 0À» ÀÌ¿ëÇؼ ilocÀ¸·Î ¼±Åð¡´ÉÇÏ´Ù.
middf.iloc[0]
loc¿Í iloc¸ðµÎ Çà°ú ¿À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. Çà°ú ¿À» ÁöÁ¤ÇÒ ¶§
:¸¦ ÀÌ¿ëÇؼ slicingÀÌ °¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î È«±æµ¿°ú Á¤¾à¿ëÀÇ ÅäÁú¿ªÇаú ¼ö¸®ÇÐ Á¡¼ö¸¸À» ÃëÇÏ·Á¸é ÀÌ·¸°Ô ÇÏ¸é µÈ´Ù. ½½¶óÀ̽̿¡¼ : µÚÀÇ
¼ýÀÚ´Â Æ÷ÇÔµÇÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.
middf.iloc[0:2,1:3]
ilocÀÌ ¾Æ´Ñ locÀ» »ç¿ëÇؼµµ °°Àº ¹æ¹ýÀ¸·Î ÀÛµ¿ÇÑ´Ù. iloc°ú ´Þ¸®
:µÚÂʵµ Æ÷ÇԵǴ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
middf.loc['È«±æµ¿':'Á¤¾à¿ë','ÅäÁú¿ªÇÐ':'¼ö¸®ÇÐ']
-
describe()
µ¥ÀÌÅÍ ÇÁ·¹ÀÓÀÌ °¡Áö°í ÀÖ´Â ¼ýÀÚµéÀÇ °³¼ö, Æò±Õ,Ç¥ÁØÆíÂ÷, ÃÖ´ë°ª, ÃÖ¼Ò°ª
µî °³·«ÀûÀÎ Åë°è°ªÀ» º¸¿©ÁÖ´Â °£´ÜÇÑ ±â´ÉÀÌ´Ù.
-
column Ãß°¡
Ãø·®ÇÐÁ¡¼ö¸¦ Ãß°¡ÇÏ·Á¸é ¾î¶»°Ô ÇؾßÇÒ±î? columnÀ» Ãß°¡ÇÏ¸é µÉ °ÍÀÌ´Ù.
columnÀ» Ãß°¡ÇÏ´Â ¹æ¹ýÀº »õ·Î¿î columnÀ̸§°ú °ªÀ» ¸®½ºÆ®·Î ÀÔ·ÂÇØÁÖ¸é µÈ´Ù.
¸¸¾à index°³¼ö¿Í ´Ù¸¥ °³¼öÀÇ °ªÀ» Ãß°¡ÇÏ¸é ¾î¶»°Ô
µÉ±î? »óÇϼöµµ¸¦ Ãß°¡Çϴµ¥ 4°³ÀÇ °ªÀ» ÀÔ·ÂÇغ¸ÀÚ.
¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ¿¡·¯¸Þ½ÃÁö´Â ´ÙÀ½°ú °°´Ù.
ValueError: Length of
values (4) does not match length of index (3)
À妽º´Â 3°³Àε¥ °ªÀÌ 4°³¸¦ ÇÒ´çÇÏ·Á°í Çß´Ù´Â °ÍÀÌ´Ù.
°³¼ö°¡ Àû¾îµµ ´ç¿¬È÷ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù.
-
row Ãß°¡
À̹ø¿¡´Â ÇлýÀ» ÇѸí Ãß°¡Çغ¸ÀÚ. »Ç·Î·Î ÇлýÀ» Ãß°¡ÇÒ
°ÍÀÌ´Ù. °¢ °ú¸ñÀÇ Á¡¼ö´Â ±¸Á¶¿ªÇÐ 87, ÅäÁú¿ªÇÐ 83, ¼ö¸®ÇÐ 75, Ãø·®ÇÐ 90ÀÌ´Ù. ±â¾ïÇؾßÇÒ °ÍÀÌ DataFrame¿¡ ÇàÀ» Çϳª Ãß°¡Çϱâ
À§Çؼ´Â Ãß°¡ÇÒ ³»¿ëÀ» »õ·Î¿î DataFrameÀ¸·Î ¸¸µé¾î¼ Ãß°¡ÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
±×·¡¼ »Ç·Î·ÎÀÇ Á¡¼ö¸¦ »õ·Î¿î dataframeÀ¸·Î
¸¸µç´Ù. º¯¼ö¸íÀº dftemp¶ó°í ÇÏ°Ú´Ù. µ¥ÀÌÅ͸¦ columnÀ̸§°ú Á¡¼ö·Î ÀÌ·ç¾îÁø µñ¼Å³Ê¸® ÇüÅ·ΠÁÖ°í, À妽º¸¦ Á¤ÇØÁØ´Ù. ¿©±â¼ À妽º°¡
ÇϳªÁö¸¸ ¸®½ºÆ® ÇüÅ·ΠÁà¾ßÇÑ´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.
dftemp=pd.DataFrame({'±¸Á¶¿ªÇÐ':87,
'ÅäÁú¿ªÇÐ': 83, '¼ö¸®ÇÐ': 75, 'Ãø·®ÇÐ': 90},index=['»Ç·Î·Î'])
ÀÚ ÀÌÁ¦ »õ·Î¿î dataframeÀ» ¿ø·¡ÀÇ
dataframe¿¡ Ãß°¡ÇÏÀÚ. concatÇÔ¼ö¸¦ Àû¿ëÇÑ´Ù. ÇÕÃÄÁø dataframeÀ» middf1·Î ÁöÁ¤ÇÏ°Ú´Ù. ÁÖÀÇÇÒ Á¡Àº
middf¿Í dftemp¸¦ [ ]¾È¿¡ ³Ö¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
middf1=pd.concat([middf,dftemp])
-
row »èÁ¦
ÇàÀ̳ª ¿À» »èÁ¦ÇÒ ¶§´Â dropÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù. »Ç·Î·ÎÀÇ ¼ºÀûÀ» »èÁ¦Çϱâ
À§Çؼ´Â index¸¦ »Ç·Î·Î·Î ÁöÁ¤ÇØÁÖ¸é µÈ´Ù. middf1=middf1.drop(index=¡¯»Ç·Î·Î¡¯)
Ä÷´À» »èÁ¦Çغ¸ÀÚ. ¸¶Âù°¡Áö·Î dropÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ¼ö¸®ÇÐ Ä÷³À» »èÁ¦Çϱâ
À§Çؼ columns=¡¯¼ö¸®ÇС¯À» ÁöÁ¤ÇØÁÖ¸é µÈ´Ù. ÇàÀº index ¿Àº columns¶ó´Â °ÍÀ» ±â¾ïÇÏÀÚ. columnÀÌ ¾Æ´Ï¶ó columns´Ù.
¼ö¸®ÇÐÀÌ »èÁ¦µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. middf1¿¡¼ ¼ö¸®ÇÐÀ» »èÁ¦¸¸ Çß°í middf1¿¡ ÇÒ´çÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ middf1Àº ¾ÆÁ÷ ¼ö¸®ÇÐÀÌ
»èÁ¦µÇÁö ¾Ê¾Ò´Ù´Â °ÍÀ» ±â¾ïÇÏÀÚ.
¼ö¸®Çаú Ãø·®ÇÐÀ» ¸ðµÎ »èÁ¦ÇÏ·Á¸é columns=[¡®¼ö¸®ÇС¯,¡¯Ãø·®ÇС¯]À̶ó°í
ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.
-
column ÇÕ, Æò±Õ, max, min
columnÀÇ ÇÕ,Æò±Õ,max,minÀº middf1.sum(),
mean(), max(), min()ÀÇ ÇÔ¼ö·Î ±¸ÇÒ ¼ö ÀÖ´Ù.
ÀÌ·¸°Ô ±¸ÇØÁø °ªµéÀÇ Çü½ÄÀº ¹«¾ùÀϱî? typeÇÔ¼ö¸¦ ÀÌ¿ëÇؼ ¾Ë¾Æº¸¸é
Series¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
ÀÌ µ¥ÀÌÅÍ ÇüÀÌ Series¶ó´Â °ÍÀº ¼öÇÐÀÇ Çհ踦 ¾Ë°í ½Í´Ù¸é
sum[¡®¼öÇС¯]À̶ó°í ÇÏ¸é µÈ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
-
row ÇÕ, Æò±Õ, max, min
¾Õ¿¡¼ »ìÆ캻 columnÀÇ sum,mean µî°ú ºñ½ÁÇÏ´Ù. ´ÜÁö
sum(axis=1)À̶ó´Â °Í¸¸ ´Ù¸£´Ù. axis=0Àº Ä÷³, axis=1Àº ÇàÀ̶ó´Â °ÍÀ» ±â¾ïÇÏÀÚ. »ç½Ç ¾ÕÀÇ column¿¡ ´ëÇÑ sumµîÀº
axis=0ÀÌ »ý·«µÈ °ÍÀÌ´Ù. Áï default°¡ ¿À̶ó´Â °ÍÀÌ´Ù.
Á¡¼öÇÕÀ» columnÀ¸·Î Ãß°¡ÇÏ°í ½Í´Ù¸é middf1[¡®Çհ衯]=middf1.sum(axis=1)À̶ó°í
ÇØÁÖ¸é µÈ´Ù.
°°Àº ¹æ¹ýÀ¸·Î Æò±Õ°ªÀ» Ãß°¡Çغ¸ÀÚ. ±×³É mean(axis=1)À» Àû¿ëÇϸé
ÇÕ°è±îÁö Æ÷ÇÔµÈ Æò±Õ°ªÀÌ »êÁ¤µÈ´Ù. µû¶ó¼ ±¸Á¶¿ªÇкÎÅÍ Ãø·®ÇÐ Ä÷³±îÁö¸¸ ¼±ÅÃÇؼ meanÀ» Àû¿ëÇØ¾ß ÇÑ´Ù.
ÀϺΠÄ÷³¸¸ ¼±ÅÃÇÏ´Â ¹æ¹ýÀ» °¢ Ä÷³À̸§À» ³ª¿ÇØÁÖ¸é µÈ´Ù.
middf1[¡®Æò±Õ¡¯]=middf1[[¡®±¸Á¶¿ªÇС¯,¡¯ÅäÁú¿ªÇС¯,¡¯¼ö¸®ÇС¯,¡¯Ãø·®ÇС¯]].mean(axis=1)
-
column¿¡ ¼ö½Ä Àû¿ëÇϱâ(apply)
ÀÌ¹Ì Çհ踦 ±¸Çؼ ÇÕ°è Ä®·³À» ¸¸µé¾úÀ¸´Ï Æò±ÕÀº ±× Çհ踦 °ú¸ñ ¼öÀÎ
4·Î ³ª´©¸é µÉ °ÍÀÌ´Ù.ÀÌ¿Í °°ÀÌ ¾î¶² Ä®·³¿¡ ¼ö½ÄÀ» Àû¿ëÇϱâ À§Çؼ applyÇÔ¼ö¸¦ ¾´´Ù. lambda À͸íÇÔ¼ö·Î x¸¦ ÀÎÀÚ·Î ¹Þ¾Æ¼ x¿¡ ´ëÇؼ
ÇÒ ¿¬»êÀ» Á¤ÀÇÇÑ´Ù.
-
column¿¬»ê
¾ÕÀÇ apply¿Í ´Þ¸® Ä÷³°£ÀÇ ¿¬»êÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ÀÏÁ¤ÇÑ °ªÀ»
´õÇϰųª »©°Å³ª °öÇÒ ¼öµµ ÀÖ´Ù. °£´ÜÇÑ ¿¬»êÀº column¿¬»êÀ» ÀÌ¿ëÇÏ°í º¹ÀâÇÑ ¿¬»êÀº apply¸¦ ÀÌ¿ëÇÑ´Ù°í º¸¸é µÈ´Ù.
¿¹¸¦ µé¾î ¼ö¸®ÇÐ Á¡¼ö¿¡ ÀÏ°ýÀûÀ¸·Î 5Á¡ÀÇ °¡Á¡À» ÁØ´Ù°í »ý°¢Çغ¸ÀÚ.
¼ö¸®ÇÐ Á¡¼ö°¡ º¯ÇÑ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÁÖÀÇÇÒ Á¡Àº ÇÕ°è¿Í Æò±ÕÀº º¯ÇÏÁö
¾Ê¾Ò´Ù´Â °ÍÀÌ´Ù.
ÀÌ·¸°Ô Ä÷³¿¡ ´ëÇؼ add(), sub(), mul(), div(),
mod(), pow() µîÀÇ ÇÔ¼ö¸¦ ¾µ ¼ö ÀÖ´Ù. °¢°¢ ´õÇϱâ, »©±â, °öÇϱâ, ³ª´©±â, ³ª¸ÓÁö, Á¦°öÀÇ ±â´ÉÀ» °¡Áö°í ÀÖ´Ù.
½ÇÁ¦·Î ±×·² ÀÏÀº ¾øÁö¸¸ ±¸Á¶¿ªÇÐ Á¡¼ö¿¡¼ ÅäÁú¿ªÇÐÁ¡¼ö¸¦ »©º¸ÀÚ.
middf1['ÅäÁú¿ªÇÐ'].sub(middf1['¼ö¸®ÇÐ'])
sub()ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í +, -, *, / ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
middf1['ÅäÁú¿ªÇÐ']-middf1['¼ö¸®ÇÐ']
-
dataframe Á¤·Ä(sort)
dataframeÀ» Á¤·ÄÇÏ´Â ÇÔ¼ö´Â sort_index¿Í
sort_values°¡ ÀÖ´Ù. sort_index´Â index³ª columns¸¦ ±âÁØÀ¸·Î Á¤·ÄÇÏ´Â °ÍÀÌ°í sort_values´Â °ªµéÀ» ±âÁØÀ¸·Î
Á¤·ÄÇÑ´Ù.
¾ÕÀÇ dataframeÀ» Á¤·ÄÇغ¸ÀÚ. »ç¶÷À̸§À¸·Î Á¤·ÄÇÏ·Á¸é
sort_index¸¦ ÀÌ¿ëÇÑ´Ù. ()¾È¿¡ ¾Æ¹«°Íµµ ¾ø´Â °ÍÀº default·Î ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
³»¸²Â÷¼øÀ¸·Î Á¤·ÄÇϱâ À§Çؼ´Â ()¾È¿¡ ascending=False¸¦
ÀÔ·ÂÇØÁØ´Ù.
À̹ø¿¡´Â ¿À̸§À» ±âÁØÀ¸·Î Á¤·ÄÀ» Çغ¸°Ú´Ù. ()¾È¿¡ axis=1À» ÀÔ·ÂÇØÁÖ¸é
µÈ´Ù. ÇàÀÇ ¼ø¼¸¦ Á¤·ÄÇÏ´Â °Í¿¡´Â default·Î axis=0ÀÌ Àû¿ëµÇ¾ú´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
3. dataframe ÆÄÀÏ ÀÔÃâ·Â
pandas·Î
µ¥ÀÌÅ͸¦ ´Ù·ç·Á¸é µ¥ÀÌÅ͸¦ Àоî¿À°í ¾µ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÄÞ¸¶·Î ±¸ºÐµÈ ÆÄÀÏ CSVÆÄÀÏÀ» ¸¹ÀÌ ¾´´Ù. ÀÌ Æ÷¸ËÀº ¿¢¼¿¿¡¼µµ ¿¸°´Ù. CSVÆÄÀÏÀº
ÅؽºÆ®ÆÄÀÏÀ̱⠶§¹®¿¡ È®Àεµ ½±´Ù. csvÆÄÀÏ·Î ¾²°í Àаí ÇÏ´Â °ÍÀ» Çغ¸ÀÚ.
pandas¿¡¼´Â
to_csv()ÇÔ¼ö¿Í read_csv()ÇÔ¼ö µÎ°³¸¦ Áö¿øÇÑ´Ù.
1) csv ÆÄÀÏ·Î Ãâ·ÂÇϱâ
À§¿¡¼
¸¸µç Áß°£°í»ç Á¡¼ö¸¦ csvÆÄÀÏ·Î ÀúÀåÇغ¸ÀÚ. µ¥ÀÌÅÍÇÁ·¹ÀÓ¿¡ ´ëÇؼ to_csvÇÔ¼ö¸¦ ½ÇÇàÇÏ¸é µÈ´Ù. ÀÎÀڷδ ÆÄÀϸíÀ» ÁØ´Ù. .Àº ÇöÀç µð·ºÅ丮¶ó´Â
¶æÀ¸·Î jupyter notebookÀ» ½ÇÇàÇÑ µð·ºÅ丮´Ù.
middf1.to_csv(¡°./middf1.csv¡±)
csvÀ»
ÅؽºÆ®¿¡µðÅÍ·Î ¿¾î¼ È®ÀÎÇغ¸¸é Á¦´ë·Î ¸¸µé¾îÁø °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ùÁÙÀº columns Áï ¿ À̸§µéÀÌ´Ù. ±× ¾Æ·¡ÁÙºÎÅÍ Ã³À½¿¡
index±×¸®°í °¢ °ú¸ñÀÇ Á¡¼ö¿Í ÇÕ°è,Æò±ÕÀÌ Ãâ·ÂµÇ¾ú´Ù. ùÁÙÀÇ ¸Ç ¾ÕÀÌ ,·Î ½ÃÀÛÇÑ ÀÌÀ¯´Â index¿¡ À̸§À» ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù.
index¿Í
column¿¡ À̸§À» ÁöÁ¤ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.
middf1.index.name="À̸§"
middf1.columns.name="°ú¸ñ¸í"
´Ù½Ã
to_csv¸¦ Çغ¸¸é À̸§ÀÌ Ãß°¡µÈ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
À̸§,±¸Á¶¿ªÇÐ,ÅäÁú¿ªÇÐ,¼ö¸®ÇÐ,Ãø·®ÇÐ,ÇÕ°è,Æò±Õ
È«±æµ¿,84,80,91,75,325,81.25
Á¤¾à¿ë,99,95,95,97,381,95.25
À̸ù·æ,80,85,94,82,336,84.0
|
2) csv ÆÄÀϷκÎÅÍ Àбâ
À̹ø¿¡´Â
csvÆÄÀÏÀ» ÀÐ¾î¼ dataframeÀ» ¸¸µå´Â °ÍÀ» Çغ¸ÀÚ. ¾Õ¿¡¼ ¸¸µç ÆÄÀÏÀ» ±×´ë·Î ÀÐ¾î¼ middf2¿¡ ÀúÀåÇÏ°Ú´Ù.
middf2
= pd.read_csv(¡°./middf1.csv¡±)
ÀÌÀüÀÇ
middf1°ú ´Ù¸¥ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. À妽º°¡ 0,1,2·Î µÇ¾ú°í À̸§Àº Ä÷³À¸·Î ÀÎ½ÄµÈ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. 0,1,2 À妽º ´ë½Å À̸§À»
index·Î ÁöÁ¤ÇÏ·Á¸é index_colÀ» ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.
middf2
= pd.read_csv("./middf1.csv",index_col="À̸§")
4. ¸¶¹«¸®
À̹ø
½Ã°£¿¡´Â pandasÀÇ dataframeÀ» ´Ù·ç¾îº¸¾Ò´Ù. dataframeÀÇ °³³ä¸¸ ÆľÇÇÏ´Â ¼öÁؾú´Ù. ½ÇÁ¦·Î ´õ ¸¹Àº ±â´ÉÀÌ ÀÖÀ¸´Ï ÀÚ½ÅÀÌ ÇÊ¿äÇÑ
±â´ÉÀº °Ë»öÀ» ÅëÇؼ ¾Ë¾Æº»´ÙÀ½¿¡ »ç¿ëÇÏ´Â °ÍÀ» ±ÇÀåÇÑ´Ù.
dataframeÀÌ
¿¢¼¿°ú ´Ù¸¥ Á¡Àº ¸¹´Ù. ¿¢¼¿¿¡¼´Â ¼ø¼öÇÑ µ¥ÀÌÅ͸¸ ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó µ¥ÀÌÅ͵éÀ» ºÐ¼®ÇÑ °á°úµéµµ °°Àº ½ÃÆ®¿¡ ÀúÀåÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ¿¢¼¿¿¡¼´Â
°è»ê°á°ú¸¦ ¼¿¿¡ ³Ö¾î¾ß Çϱ⠶§¹®¿¡ ±×·¸Áö¸¸ python pandas ÄÚµù¿¡¼´Â °è»ê °á°ú¸¦ º¯¼ö¿¡ ³Ö±â ¶§¹®¿¡ µ¥ÀÌÅÍ µû·Î ºÐ¼®°á°ú µû·Î °ü¸®ÇÒ
¼ö ÀÖ´Ù.
À̹ø
¿¹Á¦´Â ÀÌÇظ¦ µ½±â À§Çؼ ¸î¸í ¾ÈµÇ´Â »ç¶÷µéÀÇ °ú¸ñÁ¡¼ö¸¦ ´Ù·ç¾ú´Ù. ¿¹¸¦ µé¾î¼ ÁöÁø°üÃø°á°ú´Â ¼öõ ¼ö¸¸°³ÀÇ ½Ã°è¿ µ¥ÀÌÅÍ°¡ µÉ °ÍÀÌ´Ù. ±×·±
µ¥ÀÌÅ͸¦ dataframe¿¡ ³Ö¾î ³õ°í ºÐ¼®ÇÒ ¶§ ¿¢¼¿º¸´Ù´Â ÈξÀ ÆíÇÏ°í ¾ÈÁ¤ÀûÀÏ °ÍÀÌ´Ù.
-³¡-