<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>손느린 일잘러의 편하게 일하는 방법들</title>
    <link>https://smart-worker.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 24 Aug 2026 20:13:28 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>손느린 프로그래머</managingEditor>
    <item>
      <title>최고의 번역툴, Deepl 서비스 이용 방법 및 국내 출시 일정</title>
      <link>https://smart-worker.tistory.com/66</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;구글 번역과 파파고를 압도하는 최고의 번역 서비스인 DeepL의 유료 서비스의 국내 출시합니다. 이번 글에서는 DeepL의 번역 품질과 사용법에 대해서 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;DeepL의 번역 품질 비교&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 영어와 한글 번역이 필요할 경우, 구글 번역이나 파파고 보다는 DeepL을 이용합니다. 일본어 번역에는 아무래도 파파고가 더 나은 측면이 있지만, 영어 번역 시에 딥엘의 자연스러움을 따라오지 못합니다. 몇 가지 예를 들어 볼까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 하와이 화재 기사에 대해서 구글, 파파고, DeepL 번역을 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Michael Walker, Hawaii&amp;rsquo;s fire protection forester, urged state lawmakers last year to make a relatively meager financial commitment to boost wildfire preparedness: about $1.5 million. That money, in the form of a bill that would have funded new firebreaks, livestock grazing and water infrastructure for firefighting, was meant to ensure some safety from the nonnative and highly flammable grasses that cover a large part of Hawaii. The bill died in committee. &amp;ldquo;This is something they&amp;rsquo;ve been asking for years and this is the furthest it&amp;rsquo;s ever gotten,&amp;rdquo; said state Rep. Darius Kila, a Democrat who sponsored the bill. &amp;ldquo;We have to be better about being proactive.&amp;rdquo; The fires that last week destroyed Lahaina and killed at least 110 people were driven by some factors outside of local officials&amp;rsquo; control, like drought conditions and hurricane-strength winds. But the proliferation of quick-burning grass fuels and the lack of action and funding to address them loom as the biggest missed opportunity &amp;mdash; and one that highlights the challenges state and local officials face in taking action to head off natural disasters.&lt;br /&gt;&lt;br /&gt;https://www.nbcnews.com/&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZlbM8/btsrwAgaKv4/AU9RiP2igtPugIrBmhYTKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZlbM8/btsrwAgaKv4/AU9RiP2igtPugIrBmhYTKK/img.png&quot; data-alt=&quot;구글 번역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZlbM8/btsrwAgaKv4/AU9RiP2igtPugIrBmhYTKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZlbM8%2FbtsrwAgaKv4%2FAU9RiP2igtPugIrBmhYTKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;254&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;구글 번역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 구글 번역입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;하와이의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;화재 예방 삼림관&lt;/b&gt;&lt;/span&gt; 마이클 워커(Michael Walker)는 작년 주 의원들에게 산불 대비를 강화하기 위해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;약 150만 달러의 상대적으로 빈약한 재정적 약속을 할 것을 촉구&lt;/b&gt;&lt;/span&gt;했습니다. 새로운 방화대, 가축 방목, 소방용 수자원 기반 시설에 자금을 지원하는 법안 형태의 그 돈은 하와이 대부분을 뒤덮고 있는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;비토종 및 인화성이 높은 풀로부터&lt;/b&gt;&lt;/span&gt; 어느 정도 안전을 보장하기 위한 것이었습니다. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이 법안은 위원회에서 사망했습니다.&lt;/span&gt; &lt;/b&gt;이 법안을 후원한 민주당의 다리우스 킬라(Darius Kila) 주 하원의원은 &amp;ldquo;이것은 그들이 수년 동안 요구해 왔던 것이고 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이것은 지금까지 얻은 것 중 가장 먼 것&amp;rdquo;&lt;/b&gt;&lt;/span&gt;이라고 말했다. &quot;우리는 능동적으로 행동하는 것에 대해 더 잘해야 합니다.&quot; 지난 주 라하이나를 파괴하고 최소 110명의 목숨을 앗아간 화재는 가뭄 조건과 허리케인급 바람과 같이 현지 공무원의 통제를 벗어난 몇 가지 요인에 의해 발생했습니다. 그러나 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;빨리 타는 잔디 연료의 확산&lt;/b&gt;&lt;/span&gt;과 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이를 해결하기 위한 조치 및 자금 부족은 놓친 가장 큰 기회&lt;/b&gt;&lt;/span&gt;로 나타나고 있습니다.&lt;br /&gt;&lt;br /&gt;구글 번역&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많이 어색한 문장은 붉은 색으로 강조하였습니다. 대략적 내용은 이해하나, 한국인이 읽기에는 어색한 문장이 많습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 파파고 번역입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;하와이의 방화 산림관리자인 마이클 워커는 작년 주 의원들에게 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;산불 대비를 증진시키기 위해&lt;/b&gt; &lt;b&gt;상대적으로 빈약한 재정적 약속&lt;/b&gt;&lt;/span&gt;을 하라고 촉구한 바 있는데, 이는 약 150만 달러에 해당하는 금액입니다. 이 돈은, 새로운 방화 장치, 가축 방목 및 소방을 위한 물 기반 시설에 자금을 지원하는 법안의 형태로, 하와이의 상당 부분을 덮고 있는, 토착화되지 않고 인화성이 높은 잔디로부터 일부 안전을 보장하기 위한 것이었습니다. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이 법안은 위원회에서 사망했습니다.&lt;/b&gt;&lt;/span&gt; 이 법안을 발의한 민주당 의원 다리우스 킬라는 &quot;이것은 그들이 수년 동안 요청해온 것이며, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;지금까지 얻은 것 중 가장 먼 것입니다&lt;/b&gt;&lt;/span&gt;.&quot;라고 말했습니다. &quot;우리는 사전에 예방하는 것에 대해 더 나은 방법을 찾아야 합니다.&quot; 지난 주 라하이나를 파괴하고 최소 110명의 목숨을 앗아간 이 화재는 가뭄 상황과 허리케인 강도의 바람과 같은, 지역 당국의 통제 밖에 있는 일부 요인들에 의해 발생했습니다. 하지만 빠르게 연소되는 잔디의 확산과 이를 해결하기 위한 조치 및 자금 부족이 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;최대의 놓친 기회로 다가오고 있으며&lt;/b&gt;&lt;/span&gt;, 주정부와 지역 당국이 자연 재해를 막기 위한 조치를 취하는데 직면한 어려움을 강조하는 것입니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파파고가 구글 번역보다 자연스럽습니다. 여전히, 직역으로 인한 표현이 어색한 부분이 있습니다.&lt;br /&gt;이번에는 DeepL로 번역해 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;하와이의 산불 방지 담당자인 마이클 워커는 작년에 주 의원들에게 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;산불 대비를 강화하기 위해 상대적으로 적은 금액인 약 150만 달러의 재정 지원을 촉구&lt;/b&gt;&lt;/span&gt;했습니다. 새로운 방화선, 가축 방목장, 소방용 수자원 인프라에 자금을 지원하는 법안의 형태로, 하와이 대부분을 덮고 있는 비토착화되고 가연성이 높은 풀로부터 안전을 보장하기 위한 것이었습니다. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이 법안은 위원회에서 죽었습니다.&lt;/b&gt;&lt;/span&gt; 이 법안을 후원한 민주당 소속 다리우스 킬라 하원의원은 &quot;하와이 주민들이 수년 동안 요구해 온 사항인데 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이렇게까지 진전된 것은 처음입니다.&lt;/b&gt;&lt;/span&gt;&quot;라고 말했습니다. &quot;우리는 더 적극적으로 대처해야 합니다.&quot; 지난주 라하이나를 파괴하고 최소 110명의 목숨을 앗아간 화재는 가뭄 상황과 허리케인급 강풍 등 지역 당국이 통제할 수 없는 요인에 의해 발생했습니다. 그러나 빠르게 타는 풀 연료의 확산과 이를 해결하기 위한 조치 및 자금 부족은 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;놓친 가장 큰 기회&lt;/b&gt;&lt;/span&gt;이자 주 및 지역 공무원들이 자연 재해를 막기 위한 조치를 취하는 데 직면한 어려움을 강조하는 것으로 보입니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞의 두 번역기(구글, 네이버)와 비교하여, 번역이 자연스러웠던 부분을 파란색으로 표시했습니다. 몇 가지 문장을 비교해 직접 비교해 보겠습니다. 구글과 파파고는 직역을 하면서, 우리가 보기에는 어색한 문장을 만들어 냈지만, DeepL은 문맥의 의미를 파악하여 굉장히 자연스럽게 번역을 합니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%; text-align: center;&quot;&gt;구글 번역&lt;/td&gt;
&lt;td style=&quot;width: 22.093%; text-align: center;&quot;&gt;파파고 번역&lt;/td&gt;
&lt;td style=&quot;width: 20.5233%; text-align: center;&quot;&gt;DeepL 번역&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;빈약한 재정적 약속을 할 것을 촉구했습니다.&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.093%;&quot;&gt;빈약한 재정적 약속을 할 것을 촉구했습니다.&lt;/td&gt;
&lt;td style=&quot;width: 20.5233%;&quot;&gt;&lt;b&gt;상대적으로 적은 금액인 약 150만 달러의 재정 지원을 촉구했습니다.&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;이것은&amp;nbsp;지금까지&amp;nbsp;얻은&amp;nbsp;것&amp;nbsp;중&amp;nbsp;가장&amp;nbsp;먼&amp;nbsp;것&lt;/td&gt;
&lt;td style=&quot;width: 22.093%;&quot;&gt;지금까지&amp;nbsp;얻은&amp;nbsp;것&amp;nbsp;중&amp;nbsp;가장&amp;nbsp;먼&amp;nbsp;것입니다.&lt;/td&gt;
&lt;td style=&quot;width: 20.5233%;&quot;&gt;&lt;b&gt;이렇게까지&amp;nbsp;진전된&amp;nbsp;것은&amp;nbsp;처음입니다.&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 19.8837%;&quot;&gt;이를&amp;nbsp;해결하기&amp;nbsp;위한&amp;nbsp;조치&amp;nbsp;및&amp;nbsp;자금&amp;nbsp;부족은&amp;nbsp;놓친&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;기회&lt;/td&gt;
&lt;td style=&quot;width: 22.093%;&quot;&gt;조치 및 자금 부족이 최대의 놓친 기회로 다가오고 있으며&lt;/td&gt;
&lt;td style=&quot;width: 20.5233%;&quot;&gt;&lt;b&gt;조치 및 자금 부족은 놓친 가장 큰 기회&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;DeepL 사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DeepL은 여느 번역 서비스와 같이 해당 사이트에서 바로 사용할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.deepl.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.deepl.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1692321611452&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;DeepL 번역: 세계에서 가장 정확한 번역기&quot; data-og-description=&quot;텍스트 및 전체 문서 파일을 즉시 번역하세요. 개인과 팀을 위한 정확한 번역. 매일 수백만 명이 DeepL로 번역합니다.&quot; data-og-host=&quot;www.deepl.com&quot; data-og-source-url=&quot;https://www.deepl.com/&quot; data-og-url=&quot;https://www.deepl.com/translator&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cz2zG6/hyTFfIKIOB/dCiiWbS7jy8aTfjVPHoX10/img.png?width=600&amp;amp;height=300&amp;amp;face=0_0_600_300&quot;&gt;&lt;a href=&quot;https://www.deepl.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.deepl.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cz2zG6/hyTFfIKIOB/dCiiWbS7jy8aTfjVPHoX10/img.png?width=600&amp;amp;height=300&amp;amp;face=0_0_600_300');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;DeepL 번역: 세계에서 가장 정확한 번역기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;텍스트 및 전체 문서 파일을 즉시 번역하세요. 개인과 팀을 위한 정확한 번역. 매일 수백만 명이 DeepL로 번역합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.deepl.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;!-- 광고 --&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-3133953286428901&quot; data-ad-slot=&quot;9113111958&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQcZuW/btsrwjMoHMh/WvUzKU2K2L0UZkh4TIS0A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQcZuW/btsrwjMoHMh/WvUzKU2K2L0UZkh4TIS0A0/img.png&quot; data-alt=&quot;DeepL 번역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQcZuW/btsrwjMoHMh/WvUzKU2K2L0UZkh4TIS0A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQcZuW%2FbtsrwjMoHMh%2FWvUzKU2K2L0UZkh4TIS0A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;843&quot; height=&quot;568&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DeepL 번역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DeepL은 pdf, docx 같은 파일 번역도 제공하여, 편리하게 이용할 수 있습니다. 다만 무료 버전의 경우 사용횟수나 길이가 제한 될 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAYdUx/btsrtjstUvj/brHemUhvs20du97pAGujl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAYdUx/btsrtjstUvj/brHemUhvs20du97pAGujl0/img.png&quot; data-alt=&quot;DeepL 파일 번역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAYdUx/btsrtjstUvj/brHemUhvs20du97pAGujl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAYdUx%2FbtsrtjstUvj%2FbrHemUhvs20du97pAGujl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;839&quot; height=&quot;683&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DeepL 파일 번역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;DeepL Pro 사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유료 사용자 버전에는 텍스트 번역에 제한이 없습니다. 그리고 약 5000개의 사전을 사용할 수 있다고 합니다. 사업목적으로 사용할 때, 특정 분야에서 사용되는 용어를 지정할 수 있습니다. 다만, 아직 한국어 버전은 제공하지 않는 것 같습니다. 이 밖에 사용자 관리 기능등이 추가됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;836&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WgK1I/btsrwzO5qKv/XQL5uCi5NmBTYtq9eWSGm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WgK1I/btsrwzO5qKv/XQL5uCi5NmBTYtq9eWSGm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WgK1I/btsrwzO5qKv/XQL5uCi5NmBTYtq9eWSGm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWgK1I%2FbtsrwzO5qKv%2FXQL5uCi5NmBTYtq9eWSGm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;836&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;836&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 DeepL 프로의 주요 특징입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;고급 번역 기능&lt;/b&gt;: DeepL은 이미 그 뛰어난 번역 능력으로 많은 사람들의 신뢰를 얻었습니다. DeepL Pro는 이러한 기능을 더욱 확장하여 한국어를 포함한 30개 이상의 언어로의 번역을 지원합니다. 이로써 한국 기업은 전 세계 고객에게 보다 쉽게 접근할 수 있게 되었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;뉘앙스와 산업별 용어 고려&lt;/b&gt;: DeepL은 단순한 문장 번역을 넘어서 문맥과 산업별 특수 용어까지 고려한 번역을 제공합니다. 이는 사람이 직접 번역한 것 같은 자연스러움을 보장합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;강력한 데이터 보안&lt;/b&gt;: DeepL Pro 사용자의 데이터는 철저히 보호됩니다. 번역된 모든 텍스트는 삭제되며, DeepL의 AI 모델 학습에도 활용되지 않습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;팀 협업 지원:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;팀 관리자는 DeepL Pro를 통해 사용자 접근 권한을 관리할 수 있습니다. 이는 팀 내에서의 협업을 보다 효율적으로 만들어 줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 파일 형식 지원&lt;/b&gt;: PDF, 워드, 파워포인트, HTML 등 다양한 파일 형식을 지원하여, 원본 파일의 형식을 그대로 유지하며 번역이 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;API 통합&lt;/b&gt;: 대규모의 즉각적인 고품질 번역이 필요한 조직은 DeepL API를 웹사이트나 앱에 직접 통합하여 사용할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/AI, 통계</category>
      <category>DeepL</category>
      <category>딥엘번역기</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/66</guid>
      <comments>https://smart-worker.tistory.com/66#entry66comment</comments>
      <pubDate>Fri, 18 Aug 2023 10:30:20 +0900</pubDate>
    </item>
    <item>
      <title>[Python] pandas dataframe에서 데이터 읽기 : loc, iloc 사용법</title>
      <link>https://smart-worker.tistory.com/65</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Pandas에서 가장 자주 사용하는 기능이 특정 위치의 데이터를 찾고 수정하는 것입니다. Pandas는 loc와 iloc 등을 이용해 쉽게 특정 행과 칼럼을 찾을 수 있는 방법을 제공합니다. 이번 글에서는 loc와 iloc사용법에 대해서 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. pandas&amp;nbsp;loc&amp;nbsp;사용법&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. pandas&amp;nbsp;iloc&amp;nbsp;사용법&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt;3. 기타&amp;nbsp;주의할&amp;nbsp;점&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;119c74a1e4fe9ac94178a99c5a7fce63.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sPwkK/btsp9ptgDfo/dxlWprJUp6JstPL6XsBfmk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sPwkK/btsp9ptgDfo/dxlWprJUp6JstPL6XsBfmk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sPwkK/btsp9ptgDfo/dxlWprJUp6JstPL6XsBfmk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsPwkK%2Fbtsp9ptgDfo%2FdxlWprJUp6JstPL6XsBfmk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;420&quot; data-filename=&quot;119c74a1e4fe9ac94178a99c5a7fce63.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. pandas&amp;nbsp;loc&amp;nbsp;사용법&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;dataframe.loc[ 행, 칼럼명] 형태로 데이터프레임의 정보를 가져올 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;loc는 'Location based indexing'을 의미하며, 이를 통해 데이터 프레임에서 특정 행이나 열을 선택할 수 있습니다. 이를&amp;nbsp;사용하면&amp;nbsp;인덱스&amp;nbsp;값&amp;nbsp;또는&amp;nbsp;열&amp;nbsp;이름을&amp;nbsp;기준으로&amp;nbsp;특정&amp;nbsp;데이터를&amp;nbsp;추출할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;loc의&amp;nbsp;사용법은&amp;nbsp;다음과&amp;nbsp;같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691190144783&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DataFrame.loc[index, column]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;index&lt;/b&gt; : 선택하려는 행의 인덱스 레이블.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;column&amp;nbsp;&lt;/b&gt;: 선택하려는 열의 이름.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상세한 정의는 아래 pandas 공식 페이지를 참고하세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1691190230062&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.DataFrame.loc &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;A slice object with labels, e.g. 'a':'f'. Warning Note that contrary to usual python slices, both the start and the stop are included&quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.DataFrame.loc &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A slice object with labels, e.g. 'a':'f'. Warning Note that contrary to usual python slices, both the start and the stop are included&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제&amp;nbsp;예제를&amp;nbsp;통해&amp;nbsp;loc를&amp;nbsp;사용해보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691190301409&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

# 샘플 데이터 프레임 생성
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
print(df)

# loc를 사용한 데이터 선택
print(df.loc[0])  # 첫번째 행 선택
print(df.loc[0, 'Name'])  # 첫번째 행의 'Name' 열 선택
print(df.loc[:, 'Age'])  # 'Age' 열 전체 선택&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서대로, 실행한 결과입니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pD72G/btsp8YibfVS/C1nFaNKy35ecyIoVp34UVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pD72G/btsp8YibfVS/C1nFaNKy35ecyIoVp34UVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pD72G/btsp8YibfVS/C1nFaNKy35ecyIoVp34UVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpD72G%2Fbtsp8YibfVS%2FC1nFaNKy35ecyIoVp34UVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;836&quot; height=&quot;580&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;580&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. pandas iloc 사용법&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;dataframe.iloc[ 행위치, 칼럼위치] 형태로 인덱스, 칼럼 숫자 기반으로 데이터를 찾을 수 있다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;iloc는, loc와 다르게 pandas 데이터 프레임에서 인덱스 숫자를 기반으로 데이터를 선택하는 함수입니다. 즉, 행과 열의 위치를 나타내는 숫자를 사용하여 데이터를 선택하게 됩니다. &lt;br /&gt;&lt;br /&gt;iloc의&amp;nbsp;사용법은&amp;nbsp;다음과&amp;nbsp;같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691190596598&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DataFrame.iloc[row_index, column_index]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;row_index&lt;/b&gt; : 선택하려는 행의 위치를 나타내는 정수.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;column_index&lt;/b&gt; : 선택하려는 열의 위치를 나타내는 정수.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세한 사용법은 pandas 공식 페이지를 참고하세요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691190744655&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.DataFrame.iloc &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above). This is useful in method chains, when you don&amp;rsquo;t have a reference to the calling object, but would like to base your sel&quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.DataFrame.iloc &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above). This is useful in method chains, when you don&amp;rsquo;t have a reference to the calling object, but would like to base your sel&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 iloc를 이용해 데이터를 가져오는 예제입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691190793038&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(df)
# iloc를 사용한 데이터 선택
print(df.iloc[2])  # 세번째 행 선택
print(df.iloc[2, 0])  # 세번째 행의 첫번째 열 선택
print(df.iloc[:, 1])  # 두번째 열 전체 선택&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞선 예제의 dataframe에서 위 코드를 실행한 결과입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djCOsb/btsp8boyWTP/20AGPM9MgVXfuJjiB0PVx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djCOsb/btsp8boyWTP/20AGPM9MgVXfuJjiB0PVx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djCOsb/btsp8boyWTP/20AGPM9MgVXfuJjiB0PVx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjCOsb%2Fbtsp8boyWTP%2F20AGPM9MgVXfuJjiB0PVx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;566&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. 기타 주의할 점&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;loc, iloc 슬라이싱( [m:n] )을 사용 시, 끝행의 포함 여부에 주의를 해야 한다. 두 함수의 동작이 다르다.&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두&amp;nbsp;함수&amp;nbsp;모두&amp;nbsp;슬라이싱을&amp;nbsp;지원하며,&amp;nbsp;이를&amp;nbsp;통해&amp;nbsp;행이나&amp;nbsp;열의&amp;nbsp;범위를&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;다만,&amp;nbsp;loc은&amp;nbsp;끝&amp;nbsp;값을&amp;nbsp;포함하는&amp;nbsp;반면&amp;nbsp;iloc은&amp;nbsp;끝&amp;nbsp;값을&amp;nbsp;포함하지&amp;nbsp;않는다는&amp;nbsp;차이점이&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691191053204&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# loc를 사용한 범위 선택
print(df.loc[1:3])  # 두번째 행부터 네번째 행까지 선택

# iloc를 사용한 범위 선택
print(df.iloc[1:3])  # 두번째 행부터 세번째 행까지 선택&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 결과를 한 번 볼까요? 아래를 보면 원본 데이터프레임에 가져오는 행수가 다름을 확인할 수 있습니다. 혼돈하기 쉬워서 숙지하고 코드를 작성해야 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cj2OKG/btsp8XjhzTq/IdMjKPkQBggyvrqpHlYyW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cj2OKG/btsp8XjhzTq/IdMjKPkQBggyvrqpHlYyW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cj2OKG/btsp8XjhzTq/IdMjKPkQBggyvrqpHlYyW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcj2OKG%2Fbtsp8XjhzTq%2FIdMjKPkQBggyvrqpHlYyW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;451&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상 loc, iloc 사용법이었습니다.&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>dataframe데이터추출</category>
      <category>iloc</category>
      <category>iloc사용법</category>
      <category>LOC</category>
      <category>loc사용법</category>
      <category>pandas</category>
      <category>Python</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/65</guid>
      <comments>https://smart-worker.tistory.com/65#entry65comment</comments>
      <pubDate>Sat, 5 Aug 2023 08:22:34 +0900</pubDate>
    </item>
    <item>
      <title>[Python] pandas csv 읽을 때 칼럼명 지정하기: read_csv()</title>
      <link>https://smart-worker.tistory.com/64</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Pandas 에서 read_csv() 함수로 읽을 때, 칼럼명을 임의로 지정하고 싶을 때가 있습니다. 이 번에는 read_csv에서 칼럼명지정 방법에 대해서 설명하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. read_csv()&amp;nbsp;기본&amp;nbsp;사용법제목&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. read_csv에서 칼럼명 지정하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. read_csv()&amp;nbsp;기본&amp;nbsp;사용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 pandas의 read_csv() 함수의 기본적인 사용법을 간단히 살펴봅시다. 아래&amp;nbsp;코드를&amp;nbsp;실행하면,&amp;nbsp;'filename.csv'&amp;nbsp;파일을&amp;nbsp;DataFrame&amp;nbsp;객체로&amp;nbsp;읽어옵니다.&amp;nbsp;이&amp;nbsp;때,&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;행은&amp;nbsp;기본적으로&amp;nbsp;열&amp;nbsp;이름(칼럼명)으로&amp;nbsp;사용됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691133566657&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

df = pd.read_csv('파일경로/filename.csv')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. read_csv에서 칼럼명&amp;nbsp;지정하기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;read_csv에서 names 인자로 칼럼명을 지정할 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실제&amp;nbsp;데이터&amp;nbsp;분석&amp;nbsp;작업에서는&amp;nbsp;csv&amp;nbsp;파일에&amp;nbsp;칼럼명이&amp;nbsp;포함되지&amp;nbsp;않은&amp;nbsp;경우도&amp;nbsp;많습니다.&amp;nbsp;또는&amp;nbsp;기존의&amp;nbsp;칼럼명&amp;nbsp;대신&amp;nbsp;새로운&amp;nbsp;칼럼명을&amp;nbsp;지정하고&amp;nbsp;싶을&amp;nbsp;수도&amp;nbsp;있습니다.&amp;nbsp;이런&amp;nbsp;경우에는&amp;nbsp;names&amp;nbsp;매개변수를&amp;nbsp;사용하여&amp;nbsp;칼럼명을&amp;nbsp;지정할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;다음은&amp;nbsp;칼럼명을&amp;nbsp;지정하여&amp;nbsp;csv&amp;nbsp;파일을&amp;nbsp;읽어오는&amp;nbsp;예시&amp;nbsp;코드입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691133658524&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df = pd.read_csv('example.csv', names=['col1', 'col2', 'col3'])&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;코드를&amp;nbsp;실행하면,&amp;nbsp;'filename.csv'&amp;nbsp;파일의&amp;nbsp;각&amp;nbsp;열에&amp;nbsp;'col1',&amp;nbsp;'col2',&amp;nbsp;'col3'라는&amp;nbsp;이름이&amp;nbsp;부여됩니다. &lt;br /&gt;&lt;br /&gt;단,&amp;nbsp;이&amp;nbsp;방법을&amp;nbsp;사용하면&amp;nbsp;기존에&amp;nbsp;있던&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;행이&amp;nbsp;데이터로&amp;nbsp;포함되므로,&amp;nbsp;만약&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;행이&amp;nbsp;기존의&amp;nbsp;칼럼명이었다면&amp;nbsp;이를&amp;nbsp;제거하고&amp;nbsp;싶을&amp;nbsp;것입니다.&amp;nbsp;이런&amp;nbsp;경우에는&amp;nbsp;header=0&amp;nbsp;옵션을&amp;nbsp;추가로&amp;nbsp;사용하면&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;행을&amp;nbsp;건너뛸&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691133692974&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# header=0 임을 명시하면, 칼럼을 제외할 수 있습니다. 
df = pd.read_csv('파일경로/filename.csv', names=['col1', 'col2', 'col3'], header=0)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/62&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/62&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691133991247&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] Pandas에서 결측치 보간하기 - interpolate 함수 이용법&quot; data-og-description=&quot;앞선 Pandas 관련 글에서 NaN값을 대체하거나 제거하는 방법에 대해서 알아봤습니다. 이번에는 결측치를 통계적인 방법으로 추정하는 함수인 interpolate에 대해서 알아보겠습니다. 목차 1. 결측치 보&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/62&quot; data-og-url=&quot;https://smart-worker.tistory.com/62&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/btWfDf/hyTxN6m2gx/NVOzJfssyil9KSJOJW1Zf0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bU09iZ/hyTwifQvbU/jILGHFvv0FcTqDDKyo8P70/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/62&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/62&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/btWfDf/hyTxN6m2gx/NVOzJfssyil9KSJOJW1Zf0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bU09iZ/hyTwifQvbU/jILGHFvv0FcTqDDKyo8P70/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] Pandas에서 결측치 보간하기 - interpolate 함수 이용법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;앞선 Pandas 관련 글에서 NaN값을 대체하거나 제거하는 방법에 대해서 알아봤습니다. 이번에는 결측치를 통계적인 방법으로 추정하는 함수인 interpolate에 대해서 알아보겠습니다. 목차 1. 결측치 보&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/61&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691134003707&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&quot; data-og-description=&quot;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/61&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>Python</category>
      <category>read_csv</category>
      <category>칼럼명지정</category>
      <category>파이썬</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/64</guid>
      <comments>https://smart-worker.tistory.com/64#entry64comment</comments>
      <pubDate>Fri, 4 Aug 2023 16:27:43 +0900</pubDate>
    </item>
    <item>
      <title>[Python] pandas 에 csv 파일 불러오기: pd.read_csv()</title>
      <link>https://smart-worker.tistory.com/63</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서는 xlsx 파일과 함께 csv 파일도 많이 다룹니다. csv는 comma-separated values 로 값이 콤마로 구분되는 텍스트 파일 형식입니다. Pandas에서는 csv 파일과 같은 텍스트 파일을 간단히 불러와 dataframe으로 저장하는 메소드를 제공합니다. 이번 글에서는 이러한 함수인 read_csv()에 대해서 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. csv&amp;nbsp;파일&amp;nbsp;불러오기:&amp;nbsp;read_csv()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. header&amp;nbsp;읽어오는&amp;nbsp;방법&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt;3. UnicodeDecodeError&amp;nbsp;대처법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. csv&amp;nbsp;파일&amp;nbsp;불러오기:&amp;nbsp;read_csv()&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;CSV 읽어 오기 : df = pd.read_csv('filename.csv')&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSV&amp;nbsp;파일은&amp;nbsp;Comma-Separated&amp;nbsp;Values의&amp;nbsp;약자로,&amp;nbsp;데이터&amp;nbsp;값을&amp;nbsp;쉼표로&amp;nbsp;구분하는&amp;nbsp;텍스트&amp;nbsp;파일입니다.&amp;nbsp;pandas의&amp;nbsp;read_csv()&amp;nbsp;함수를&amp;nbsp;사용하면&amp;nbsp;이러한&amp;nbsp;csv&amp;nbsp;파일을&amp;nbsp;DataFrame&amp;nbsp;형식으로&amp;nbsp;쉽게&amp;nbsp;불러올&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;아래는&amp;nbsp;간단한&amp;nbsp;예시&amp;nbsp;코드입니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691132196087&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

df = pd.read_csv('filename.csv')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세한 함수 정의는 아래 read_csv 파일 형식을 참고하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691132224472&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.read_csv &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;Delimiter to use. If sep is None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator by Python&amp;rsquo;s builtin sniffer tool, csv.Sniffer. In addition&quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.read_csv &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Delimiter to use. If sep is None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator by Python&amp;rsquo;s builtin sniffer tool, csv.Sniffer. In addition&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭔가 옵션이 굉장히 많습니다... 다 아실 필요는 없습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. header&amp;nbsp;읽어오는&amp;nbsp;방법&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;header 인자에 칼럼명의 행 위치를 지정할 수 있다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;read_csv() 함수는 기본적으로 첫 번째 행을 header (열 이름)로 인식합니다. 만약 csv 파일의 첫 번째 행이 열 이름이 아니라면 header=None 옵션을 사용하여 header가 없음을 명시할 수 있습니다. 이렇게 하면 pandas는 자동으로 열 이름을 숫자로 부여합니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691132369349&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df = pd.read_csv('파일경로/filename.csv', header=None)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;반대로,&amp;nbsp;csv&amp;nbsp;파일&amp;nbsp;중&amp;nbsp;특정&amp;nbsp;행을&amp;nbsp;열&amp;nbsp;이름으로&amp;nbsp;사용하고&amp;nbsp;싶다면&amp;nbsp;header=n&amp;nbsp;옵션을&amp;nbsp;사용하면&amp;nbsp;됩니다.&amp;nbsp;여기서&amp;nbsp;n은&amp;nbsp;원하는&amp;nbsp;행의&amp;nbsp;인덱스&amp;nbsp;번호입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691132387348&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df = pd.read_csv('파일경로/filename.csv', header=2)  # 세 번째 행을 header로 사용&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. UnicodeDecodeError&amp;nbsp;대처법&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;csv&amp;nbsp;파일을&amp;nbsp;불러올&amp;nbsp;때&amp;nbsp;가끔&amp;nbsp;UnicodeDecodeError라는&amp;nbsp;에러를&amp;nbsp;만나게&amp;nbsp;됩니다.&amp;nbsp;이&amp;nbsp;에러는&amp;nbsp;파일이&amp;nbsp;저장된&amp;nbsp;인코딩과&amp;nbsp;pandas가&amp;nbsp;기대하는&amp;nbsp;인코딩이&amp;nbsp;일치하지&amp;nbsp;않을&amp;nbsp;때&amp;nbsp;발생합니다. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;문제를&amp;nbsp;해결하기&amp;nbsp;위해&amp;nbsp;encoding&amp;nbsp;파라미터를&amp;nbsp;사용하여&amp;nbsp;파일의&amp;nbsp;정확한&amp;nbsp;인코딩을&amp;nbsp;명시해줄&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;한글이&amp;nbsp;포함된&amp;nbsp;csv&amp;nbsp;파일의&amp;nbsp;경우&amp;nbsp;대부분&amp;nbsp;'utf-8'&amp;nbsp;또는&amp;nbsp;'cp949'&amp;nbsp;인코딩을&amp;nbsp;사용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691132546863&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# csv 가 utf-8로 인코딩 되었을 경우
df = pd.read_csv('파일경로/filename.csv', encoding='utf-8')&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또는 cp949로 인코딩 되었을 경우, 아래와 같이 하면 됩니다.&amp;nbsp;&lt;br /&gt;대게 excel로 csv를 저장할 경우, cp949로 인코딩되었다고 보면 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691132600505&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# cp949로 인코딩 된 경우
df = pd.read_csv('파일경로/filename.csv', encoding='cp949')&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약 정확한 인코딩이 무엇인지 모르는 경우, Python의 chardet 라이브러리를 사용하여, 아래와 같이&amp;nbsp; 파일의 인코딩을 확인할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691132637842&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import chardet

with open('파일경로/filename.csv', 'rb') as f:
    result = chardet.detect(f.read())
    
print(result['encoding'])&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이상 Python에서 csv 읽는 방법이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>csv읽기</category>
      <category>Python</category>
      <category>read_csv</category>
      <category>UTF-8</category>
      <category>파이썬</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/63</guid>
      <comments>https://smart-worker.tistory.com/63#entry63comment</comments>
      <pubDate>Fri, 4 Aug 2023 16:07:29 +0900</pubDate>
    </item>
    <item>
      <title>[Python] Pandas에서 결측치 보간하기 - interpolate 함수 이용법</title>
      <link>https://smart-worker.tistory.com/62</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;앞선 Pandas 관련 글에서 NaN값을 대체하거나 제거하는 방법에 대해서 알아봤습니다. 이번에는 결측치를 통계적인 방법으로 추정하는 함수인 interpolate에 대해서 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. 결측치&amp;nbsp;보간&amp;nbsp;방법은?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. interpolate&amp;nbsp;사용&amp;nbsp;방법&amp;nbsp;&amp;amp;&amp;nbsp;예제&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt;3. 사용시&amp;nbsp;주의점&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. 결측치&amp;nbsp;보간&amp;nbsp;방법은?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;보간법은 결측치의 앞뒤 데이터를 이용해 적절한 값을 추정하는 방법이다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결측치&amp;nbsp;보간(interpolation)은&amp;nbsp;결측치가&amp;nbsp;발생한&amp;nbsp;위치의&amp;nbsp;앞뒤&amp;nbsp;데이터를&amp;nbsp;사용하여&amp;nbsp;적절한&amp;nbsp;값을&amp;nbsp;추정하는&amp;nbsp;방법입니다.&amp;nbsp;선형&amp;nbsp;보간,&amp;nbsp;시간&amp;nbsp;보간,&amp;nbsp;다항&amp;nbsp;보간&amp;nbsp;등&amp;nbsp;다양한&amp;nbsp;방법이&amp;nbsp;있으며,&amp;nbsp;상황에&amp;nbsp;따라&amp;nbsp;적절한&amp;nbsp;방법을&amp;nbsp;선택해야&amp;nbsp;합니다.&amp;nbsp;이&amp;nbsp;중&amp;nbsp;선형&amp;nbsp;보간은&amp;nbsp;두&amp;nbsp;점&amp;nbsp;사이를&amp;nbsp;일정하게&amp;nbsp;연결하는&amp;nbsp;방법으로,&amp;nbsp;가장&amp;nbsp;간단하고&amp;nbsp;널리&amp;nbsp;사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pandas에서 메소드인 interpolate는 다양한 보간법을 지원합니다. 하지만 기본은 선형 보간법을 이용합니다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 Pandas interpolate의 공식 페이지 입니다. 자세한 내용은 아래 링크를 참고하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691130752327&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.DataFrame.interpolate &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;&amp;lsquo;nearest&amp;rsquo;, &amp;lsquo;zero&amp;rsquo;, &amp;lsquo;slinear&amp;rsquo;, &amp;lsquo;quadratic&amp;rsquo;, &amp;lsquo;cubic&amp;rsquo;, &amp;lsquo;barycentric&amp;rsquo;, &amp;lsquo;polynomial&amp;rsquo;: Passed to scipy.interpolate.interp1d, whereas &amp;lsquo;spline&amp;rsquo; is passed to scipy.interpolate.UnivariateSpline. These methods use the numerical values &quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.DataFrame.interpolate &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lsquo;nearest&amp;rsquo;, &amp;lsquo;zero&amp;rsquo;, &amp;lsquo;slinear&amp;rsquo;, &amp;lsquo;quadratic&amp;rsquo;, &amp;lsquo;cubic&amp;rsquo;, &amp;lsquo;barycentric&amp;rsquo;, &amp;lsquo;polynomial&amp;rsquo;: Passed to scipy.interpolate.interp1d, whereas &amp;lsquo;spline&amp;rsquo; is passed to scipy.interpolate.UnivariateSpline. These methods use the numerical values&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. interpolate&amp;nbsp;사용&amp;nbsp;방법&amp;nbsp;&amp;amp;&amp;nbsp;예제&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;pandas.interpolate를 통해, NaN의 추정치를 dataframe에 추가할 수 있다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Pandas 라이브러리에서는 결측치 보간을 위한 interpolate 함수를 제공합니다. 기본적으로 interpolate 함수는 선형 보간 방법을 사용하지만, 다양한 보간 방법을 선택할 수 있습니다. &lt;br /&gt;&lt;br /&gt;먼저&amp;nbsp;간단한&amp;nbsp;예제를&amp;nbsp;통해&amp;nbsp;interpolate&amp;nbsp;함수를&amp;nbsp;사용하는&amp;nbsp;방법을&amp;nbsp;알아봅시다.&amp;nbsp;다음과&amp;nbsp;같이&amp;nbsp;결측치를&amp;nbsp;포함한&amp;nbsp;DataFrame을&amp;nbsp;생성해보겠습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691130875031&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
import numpy as np

data = {'A': [1, 2, np.nan, 4, 5],
        'B': [5, np.nan, np.nan, 8, 9],
        'C': [9, 10, 11, 12, 13]}

df = pd.DataFrame(data)
print(df)

# 출력
#     A    B   C
#0  1.0  5.0   9
#1  2.0  NaN  10
#2  NaN  NaN  11
#3  4.0  8.0  12
#4  5.0  9.0  13&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;DataFrame에서&amp;nbsp;'A'와&amp;nbsp;'B'&amp;nbsp;컬럼에&amp;nbsp;결측치가&amp;nbsp;포함되어&amp;nbsp;있습니다.&amp;nbsp;interpolate&amp;nbsp;함수를&amp;nbsp;사용해&amp;nbsp;이&amp;nbsp;결측치를&amp;nbsp;보간해봅시다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 때 출력 결과를 보면 NaN으로 표시된 칼럼에 추정값이 추가되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691130905404&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;df_interpolated = df.interpolate()
print(df_interpolated)

## 출력
#  A    B   C
#0  1.0  5.0   9
#1  2.0  6.0  10  # 결측치 6.0 추가.
#2  3.0  7.0  11  # 결측치 3 , 7 추가
#3  4.0  8.0  12
#4  5.0  9.0  13&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기본적인 선형 보간 외에도 interpolate 함수는 다양한 방법으로 보간을 지원합니다. method 인자를 사용해 보간 방법을 지정할 수 있습니다. 가령 아래&amp;nbsp;코드는&amp;nbsp;2차&amp;nbsp;다항&amp;nbsp;보간을&amp;nbsp;수행합니다.&amp;nbsp;method='polynomial'으로&amp;nbsp;지정하고,&amp;nbsp;order&amp;nbsp;인자로&amp;nbsp;다항식의&amp;nbsp;차수를&amp;nbsp;지정할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691131414788&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# method에 보간방법 추가
df_interpolated = df.interpolate(method='polynomial', order=2)
print(df_interpolated)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. 사용시&amp;nbsp;주의점&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;결측 데이터의 특성을 고려해 보간 방법을 선택해야 합니다. (예, 시계열은 time)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;결측이 연속으로 발생할 경우, 오류가 커질 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;interpolate&amp;nbsp;함수를&amp;nbsp;사용할&amp;nbsp;때&amp;nbsp;주의해야&amp;nbsp;할&amp;nbsp;점은&amp;nbsp;보간&amp;nbsp;방법을&amp;nbsp;선택하는&amp;nbsp;것이&amp;nbsp;중요하다는&amp;nbsp;점입니다.&amp;nbsp;데이터의&amp;nbsp;특성,&amp;nbsp;분포&amp;nbsp;등을&amp;nbsp;고려해&amp;nbsp;적절한&amp;nbsp;보간&amp;nbsp;방법을&amp;nbsp;선택해야&amp;nbsp;합니다.&amp;nbsp;예를&amp;nbsp;들어&amp;nbsp;시계열&amp;nbsp;데이터에서는&amp;nbsp;시간을&amp;nbsp;고려한&amp;nbsp;time&amp;nbsp;보간이&amp;nbsp;적절할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;또한,&amp;nbsp;결측치가&amp;nbsp;많은&amp;nbsp;경우나&amp;nbsp;결측치가&amp;nbsp;연속으로&amp;nbsp;발생하는&amp;nbsp;경우,&amp;nbsp;보간을&amp;nbsp;통해&amp;nbsp;추정한&amp;nbsp;값이&amp;nbsp;실제&amp;nbsp;값과&amp;nbsp;크게&amp;nbsp;달라질&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이런&amp;nbsp;경우&amp;nbsp;결측치를&amp;nbsp;어떻게&amp;nbsp;처리할지&amp;nbsp;고민해야&amp;nbsp;합니다.&amp;nbsp;결측치&amp;nbsp;처리&amp;nbsp;방법은&amp;nbsp;데이터와&amp;nbsp;문제에&amp;nbsp;따라&amp;nbsp;다르므로,&amp;nbsp;다양한&amp;nbsp;방법을&amp;nbsp;시도하고&amp;nbsp;비교하는&amp;nbsp;것이&amp;nbsp;좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/61&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691131484137&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&quot; data-og-description=&quot;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/61&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 하단광고 --&gt;&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>dropna</category>
      <category>fillna</category>
      <category>Python</category>
      <category>결측치처리</category>
      <category>보간법</category>
      <category>선형보간법</category>
      <category>파이썬</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/62</guid>
      <comments>https://smart-worker.tistory.com/62#entry62comment</comments>
      <pubDate>Fri, 4 Aug 2023 15:44:59 +0900</pubDate>
    </item>
    <item>
      <title>[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna</title>
      <link>https://smart-worker.tistory.com/61</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에서 결측값을 대체하거나 제거하는 방법에 대해서 알아보도록 하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. 결측값이란?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. Pandas의&amp;nbsp;결측값&amp;nbsp;처리&amp;nbsp;함수:&amp;nbsp;fillna와&amp;nbsp;dropna&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h2-1&quot;&gt;2.1. fillna&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-2&quot;&gt;2.2. dropna&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. 결측값이란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;결측값 - NaN, NA, None ...&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결측값이란&amp;nbsp;데이터에&amp;nbsp;존재해야&amp;nbsp;하지만,&amp;nbsp;어떤&amp;nbsp;이유로&amp;nbsp;누락되어&amp;nbsp;존재하지&amp;nbsp;않는&amp;nbsp;값을&amp;nbsp;의미합니다.&amp;nbsp;Python에서는&amp;nbsp;주로&amp;nbsp;NaN(Not&amp;nbsp;a&amp;nbsp;Number)로&amp;nbsp;표현됩니다.&amp;nbsp;데이터에&amp;nbsp;결측값이&amp;nbsp;많을&amp;nbsp;경우,&amp;nbsp;데이터의&amp;nbsp;통계적&amp;nbsp;신뢰성이&amp;nbsp;떨어지고,&amp;nbsp;모델링에도&amp;nbsp;악영향을&amp;nbsp;끼치기&amp;nbsp;때문에&amp;nbsp;적절하게&amp;nbsp;처리해야&amp;nbsp;합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. Pandas의 결측값 처리 함수: fillna와 dropna&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Pandas 라이브러리에서는 결측값을 다루기 위한 다양한 함수를 제공합니다. 여기서는 fillna와 dropna 두 가지 주요 함수를 중점적으로 살펴보겠습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;h2-1&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.1. fillna&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;fillna은 dataframe의 NaN 값을 특정 값으로 대체합니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;fillna&amp;nbsp;함수는&amp;nbsp;결측값을&amp;nbsp;특정&amp;nbsp;값으로&amp;nbsp;대체하는데&amp;nbsp;사용됩니다.&amp;nbsp;아래의&amp;nbsp;형식을&amp;nbsp;따릅니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691129932307&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자세한 함수 설명은 아래 공식 페이지를 참고하세요.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691129967011&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.DataFrame.fillna &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;If method is specified, this is the maximum number of consecutive NaN values to forward/backward fill. In other words, if there is a gap with more than this number of consecutive NaNs, it will only be partially filled. If method is not specified, this is t&quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.DataFrame.fillna &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;If method is specified, this is the maximum number of consecutive NaN values to forward/backward fill. In other words, if there is a gap with more than this number of consecutive NaNs, it will only be partially filled. If method is not specified, this is t&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 fillna 함수의 간단한 사용 예제입니다. fillna를 사용하면 dataframe 내에 있는 NaN 값을 특정 값으로 대체할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691130019674&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
import numpy as np

# Sample DataFrame 생성
df = pd.DataFrame({
   'A': [1, 2, np.nan],
   'B': [5, np.nan, np.nan],
   'C': [1, 2, 3]
})

print(df)

# Output
     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3

# 결측값을 0으로 대체
df.fillna(0)

# Output
     A    B  C
0  1.0  5.0  1
1  2.0  0.0  2
2  0.0  0.0  3&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;h2-2&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.2. Dropna&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;핵심 내용 요약....&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;dropna&amp;nbsp;함수는&amp;nbsp;결측값이&amp;nbsp;포함된&amp;nbsp;행이나&amp;nbsp;열을&amp;nbsp;삭제하는데&amp;nbsp;사용됩니다.&amp;nbsp;아래의&amp;nbsp;형식을&amp;nbsp;따릅니다.&lt;/p&gt;
&lt;pre id=&quot;code_1691130083178&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상세한 함수 정의는 아래 공식 페이지를 참고하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691130106768&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;pandas.DataFrame.dropna &amp;mdash; pandas 2.0.3 documentation&quot; data-og-description=&quot;next pandas.DataFrame.duplicated&quot; data-og-host=&quot;pandas.pydata.org&quot; data-og-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&quot; data-og-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;pandas.DataFrame.dropna &amp;mdash; pandas 2.0.3 documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;next pandas.DataFrame.duplicated&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pandas.pydata.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 dropna 함수의 간단한 사용 예제입니다. NaN이 포함된 행을 삭제합니다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1691130150084&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd
import numpy as np

# Sample DataFrame 생성
df = pd.DataFrame({
   'A': [1, 2, np.nan],
   'B': [5, np.nan, np.nan],
   'C': [1, 2, 3]
})

print(df)

# Output
     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3

# 결측값이 있는 행 삭제
df.dropna()

# Output
     A    B  C
0  1.0  5.0  1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Pandas에서&amp;nbsp;제공하는&amp;nbsp;'fillna'와&amp;nbsp;'dropna'&amp;nbsp;함수를&amp;nbsp;통해&amp;nbsp;결측값을&amp;nbsp;적절히&amp;nbsp;처리함으로써&amp;nbsp;데이터의&amp;nbsp;통계적&amp;nbsp;신뢰성을&amp;nbsp;높이고&amp;nbsp;더&amp;nbsp;나은&amp;nbsp;분석&amp;nbsp;결과를&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;하지만&amp;nbsp;어떤&amp;nbsp;함수를&amp;nbsp;선택하고,&amp;nbsp;어떤&amp;nbsp;값을&amp;nbsp;사용할지는&amp;nbsp;해당&amp;nbsp;데이터와&amp;nbsp;분석&amp;nbsp;목표에&amp;nbsp;따라&amp;nbsp;달라질&amp;nbsp;수&amp;nbsp;있으므로&amp;nbsp;신중하게&amp;nbsp;결정해야&amp;nbsp;합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/61&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1691131630471&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&quot; data-og-description=&quot;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-url=&quot;https://smart-worker.tistory.com/61&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/61&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/61&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZwcSn/hyTwifO3Ks/xrXmPNTFSAVISsBsayJ4kK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c89u2o/hyTwkrblih/X7YXDYF0ytRzHkkkTF8on0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Pandas로 데이터를 다루다 보면, 특정 셀의 정보가 NaN으로 표시될 때가 있습니다. 어떤 작업을 수행할 때, 이러한 결측치 데이터 때문에 작업 오류가 발생할 때가 많습니다. 이번 글에서는 Pandas에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>dropna</category>
      <category>fillna</category>
      <category>NaN대체</category>
      <category>NaN삭제</category>
      <category>pandas</category>
      <category>Python</category>
      <category>결측치처리</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/61</guid>
      <comments>https://smart-worker.tistory.com/61#entry61comment</comments>
      <pubDate>Fri, 4 Aug 2023 15:24:09 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 초보자를 위한 cProfile로 코드 최적화하기</title>
      <link>https://smart-worker.tistory.com/60</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;cProfile은 Python의 내장 프로파일러로, Python 코드를 최적화하는 데 도움이 됩니다. 이 글에서는 cProfile이 무엇인지, 그리고 어떻게 사용하는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. cProfile이란?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. cProfile&amp;nbsp;사용하기&lt;/a&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h2-1&quot;&gt;2.1. 기본적인&amp;nbsp;사용&amp;nbsp;방법&amp;nbsp;-&amp;nbsp;console에서&amp;nbsp;사용하기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-2&quot;&gt;2.2. 코드&amp;nbsp;내에서&amp;nbsp;cProfile&amp;nbsp;사용하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt;3. cProfile&amp;nbsp;결과&amp;nbsp;분석하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;63577f3e4842b823e32d870809c0a9d4.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVWhd8/btspsVgx1OU/6lWOAKTKRwBBr0uQ8G1bH1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVWhd8/btspsVgx1OU/6lWOAKTKRwBBr0uQ8G1bH1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVWhd8/btspsVgx1OU/6lWOAKTKRwBBr0uQ8G1bH1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVWhd8%2FbtspsVgx1OU%2F6lWOAKTKRwBBr0uQ8G1bH1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;420&quot; data-filename=&quot;63577f3e4842b823e32d870809c0a9d4.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. cProfile이란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;cProfile은, 코드 성능 최적화를 위해, 프로그램의 실행시간과 메모리 사용량을 측정하는 도구이다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로파일링은 애플리케이션의 실행 시간과 메모리 사용량을 정밀하게 측정하고, 최적화할 부분을 찾는 과정입니다. Python에서는 이를 위해 cProfile이라는 내장 프로파일러를 제공합니다. &lt;br /&gt;&lt;br /&gt;cProfile은&amp;nbsp;Python의&amp;nbsp;표준&amp;nbsp;라이브러리에&amp;nbsp;포함되어&amp;nbsp;있어&amp;nbsp;추가적인&amp;nbsp;설치&amp;nbsp;없이&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이&amp;nbsp;도구는&amp;nbsp;코드의&amp;nbsp;각&amp;nbsp;부분이&amp;nbsp;얼마나&amp;nbsp;오래&amp;nbsp;걸리는지,&amp;nbsp;얼마나&amp;nbsp;자주&amp;nbsp;호출되는지&amp;nbsp;등을&amp;nbsp;정확하게&amp;nbsp;측정할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;해줍니다. &lt;br /&gt;&lt;br /&gt;이는&amp;nbsp;실제&amp;nbsp;프로덕션&amp;nbsp;환경에서&amp;nbsp;발생하는&amp;nbsp;성능&amp;nbsp;문제를&amp;nbsp;재현하고&amp;nbsp;분석하는&amp;nbsp;데&amp;nbsp;매우&amp;nbsp;유용하며,&amp;nbsp;특히&amp;nbsp;복잡한&amp;nbsp;애플리케이션에서&amp;nbsp;성능의&amp;nbsp;병목&amp;nbsp;현상을&amp;nbsp;찾아내는&amp;nbsp;데&amp;nbsp;필수적인&amp;nbsp;도구입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 cProfile에 대한 Python 공식 문서입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.python.org/ko/3/library/profile.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.python.org/ko/3/library/profile.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690865353745&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;The Python Profilers&quot; data-og-description=&quot;Source code: Lib/profile.py and Lib/pstats.py Introduction to the profilers: cProfile and profile provide deterministic profiling of Python programs. A profile is a set of statistics that describes...&quot; data-og-host=&quot;docs.python.org&quot; data-og-source-url=&quot;https://docs.python.org/ko/3/library/profile.html&quot; data-og-url=&quot;https://docs.python.org/3/library/profile.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fl9J0/hyTvlv7d00/CvQedk7sFWZqkBlfOuhBhK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://docs.python.org/ko/3/library/profile.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.python.org/ko/3/library/profile.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fl9J0/hyTvlv7d00/CvQedk7sFWZqkBlfOuhBhK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;The Python Profilers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Source code: Lib/profile.py and Lib/pstats.py Introduction to the profilers: cProfile and profile provide deterministic profiling of Python programs. A profile is a set of statistics that describes...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cProfile을 이용하면, 코드 실행시간을 분석해 줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdnRF8/btspGMijGvy/YWObZwa0WPTEgPx0kPOJo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdnRF8/btspGMijGvy/YWObZwa0WPTEgPx0kPOJo1/img.png&quot; data-alt=&quot;cProfile 실행결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdnRF8/btspGMijGvy/YWObZwa0WPTEgPx0kPOJo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdnRF8%2FbtspGMijGvy%2FYWObZwa0WPTEgPx0kPOJo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;730&quot; height=&quot;220&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;cProfile 실행결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. cProfile&amp;nbsp;사용하기&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;cProfile을 사용하는 방법은 다양합니다. 여기에서는 기본적인 사용 방법을 소개하고, 간단한 코드 최적화 예제를 통해 cProfile을 어떻게 활용하는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;h2-1&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.1. 기본적인 사용 방법 - console에서 사용하기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&quot;-m cProfile&quot; 옵션으로 콘솔에서 성능 분석을 할 수 있다.&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;cProfile을 사용하는 가장 간단한 방법은 Python 코드를 실행할 때 -m cProfile 옵션을 추가하는 것입니다.&lt;br /&gt;예를 들어, myscript.py라는 파이썬 스크립트에 대해 cProfile을 실행하려면 다음과 같이 할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690865515550&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;python -m cProfile myscript.py&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;명령을&amp;nbsp;실행하면,&amp;nbsp;스크립트의&amp;nbsp;각&amp;nbsp;함수에&amp;nbsp;대한&amp;nbsp;실행&amp;nbsp;횟수,&amp;nbsp;전체&amp;nbsp;실행&amp;nbsp;시간,&amp;nbsp;평균&amp;nbsp;실행&amp;nbsp;시간&amp;nbsp;등의&amp;nbsp;정보가&amp;nbsp;콘솔에&amp;nbsp;출력됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;h2-2&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.2. 코드&amp;nbsp;내에서&amp;nbsp;cProfile&amp;nbsp;사용하기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;cProfile.run 을 통해서 코드 내에 성능 분석을 할 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;cProfile은 코드 내에서 직접 사용할 수도 있습니다. cProfile.run() 함수를 사용하면 특정 코드 블록의 프로파일을 수집할 수 있습니다. 다음은&amp;nbsp;cProfile.run()&amp;nbsp;함수의&amp;nbsp;사용&amp;nbsp;예제입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690865598632&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import cProfile

def my_func():
    return sum( [ i for i in range(100000) ] )

cProfile.run('my_func()')


### 출력 결과 
#6 function calls in 0.019 seconds
#   Ordered by: standard name
#
#   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
#        1    0.002    0.002    0.019    0.019 2334038239.py:3(my_func)
#        1    0.014    0.014    0.014    0.014 2334038239.py:5(&amp;lt;listcomp&amp;gt;)
#        1    0.000    0.000    0.019    0.019 &amp;lt;string&amp;gt;:1(&amp;lt;module&amp;gt;)
#        1    0.000    0.000    0.019    0.019 {built-in method builtins.exec}
#        1    0.003    0.003    0.003    0.003 {built-in method builtins.sum}
#        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;cProfile.run()&amp;nbsp;함수는&amp;nbsp;문자열&amp;nbsp;형태로&amp;nbsp;전달된&amp;nbsp;Python&amp;nbsp;코드를&amp;nbsp;실행하고,&amp;nbsp;해당&amp;nbsp;코드의&amp;nbsp;프로파일을&amp;nbsp;콘솔에&amp;nbsp;출력합니다.&amp;nbsp;이&amp;nbsp;함수를&amp;nbsp;사용하면&amp;nbsp;특정&amp;nbsp;함수나&amp;nbsp;코드&amp;nbsp;블록의&amp;nbsp;성능을&amp;nbsp;측정하고&amp;nbsp;분석하는데&amp;nbsp;도움이&amp;nbsp;됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;h2-2&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.3.&lt;span&gt; with문의&amp;nbsp;컨텍스트를&amp;nbsp;이용한&amp;nbsp;cProfile&amp;nbsp;사용하기&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;python 3.8 부터 with 문 내에서 cProfile을 실행할 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Python의&amp;nbsp;with&amp;nbsp;문을&amp;nbsp;사용하면&amp;nbsp;cProfile의&amp;nbsp;결과를&amp;nbsp;더욱&amp;nbsp;효과적으로&amp;nbsp;관리하고&amp;nbsp;분석할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;with&amp;nbsp;문은&amp;nbsp;컨텍스트&amp;nbsp;관리자라는&amp;nbsp;특별한&amp;nbsp;객체를&amp;nbsp;사용하여&amp;nbsp;코드&amp;nbsp;블록을&amp;nbsp;실행하고,&amp;nbsp;해당&amp;nbsp;블록이&amp;nbsp;종료될&amp;nbsp;때&amp;nbsp;정리&amp;nbsp;작업을&amp;nbsp;수행합니다. &lt;br /&gt;&lt;br /&gt;cProfile은&amp;nbsp;cProfile.Profile()&amp;nbsp;객체를&amp;nbsp;통해&amp;nbsp;with&amp;nbsp;문과&amp;nbsp;함께&amp;nbsp;사용될&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이&amp;nbsp;객체는&amp;nbsp;프로파일링을&amp;nbsp;시작하고,&amp;nbsp;with&amp;nbsp;문이&amp;nbsp;종료될&amp;nbsp;때&amp;nbsp;자동으로&amp;nbsp;프로파일링을&amp;nbsp;중지합니다. &lt;br /&gt;&lt;br /&gt;다음은&amp;nbsp;with&amp;nbsp;문을&amp;nbsp;사용하여&amp;nbsp;cProfile을&amp;nbsp;활용하는&amp;nbsp;예제입니다:&lt;/p&gt;
&lt;pre id=&quot;code_1690865871142&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import cProfile

def my_func():
    return sum( [ i for i in range(100000) ] )

with cProfile.Profile() as pr:
    my_func()
    
    
pr.print_stats()   # 프로파일링 통계를 출력합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDCIL2/btspE3rcw6F/SwaifKCa5PpI4nVjSJ9Z30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDCIL2/btspE3rcw6F/SwaifKCa5PpI4nVjSJ9Z30/img.png&quot; data-alt=&quot;profiling 통계 출력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDCIL2/btspE3rcw6F/SwaifKCa5PpI4nVjSJ9Z30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDCIL2%2FbtspE3rcw6F%2FSwaifKCa5PpI4nVjSJ9Z30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;377&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;profiling 통계 출력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. cProfile&amp;nbsp;결과&amp;nbsp;분석하기&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;cProfile의 출력은 상당히 많은 정보를 포함하고 있습니다. 주요 정보는 다음과 같습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ncalls&lt;/b&gt;: &lt;br /&gt;함수가 호출된 횟수입니다. 이는 함수가 얼마나 자주 사용되는지 알려줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;tottime:&lt;/b&gt; &lt;br /&gt;함수 자체의 총 실행 시간을 나타냅니다. 하위 함수의 시간은 제외합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;percall (tottime/ncalls):&lt;/b&gt; &lt;br /&gt;한 번 함수를 호출할 때 평균적으로 걸리는 시간입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;cumtime:&lt;/b&gt; &lt;br /&gt;함수와 그 함수 내에서 호출한 모든 하위 함수들의 총 실행 시간입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;정보들을&amp;nbsp;통해&amp;nbsp;어떤&amp;nbsp;함수가&amp;nbsp;프로그램&amp;nbsp;성능에&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;영향을&amp;nbsp;미치는지&amp;nbsp;판단하고,&amp;nbsp;그&amp;nbsp;부분을&amp;nbsp;개선하여&amp;nbsp;코드의&amp;nbsp;성능을&amp;nbsp;향상시킬&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/59&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/59&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690866449202&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 딕셔너리에서 기본값 설정하기&quot; data-og-description=&quot;파이썬에서 가장 많이 사용하는 dictionary 는 간단히 key값만 있으면 원하는 정보를 찾을 수 있는 편리한 데이터 구조입니다. 하지만 가끔 key가 존재하지 않을 경우, 에러가 발생해서 불편함 있는&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/59&quot; data-og-url=&quot;https://smart-worker.tistory.com/59&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/LQexE/hyTvg2DTeQ/q2tKmZLmlfkUlmfkS3577K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dpqrWG/hyTvnHueW8/cFzrQK7nCe6UkhKHNY2r7K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/hkl9m/hyTvn1MQNU/UF8p7qNgIYsgQif05XUggk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/59&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/59&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/LQexE/hyTvg2DTeQ/q2tKmZLmlfkUlmfkS3577K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dpqrWG/hyTvnHueW8/cFzrQK7nCe6UkhKHNY2r7K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/hkl9m/hyTvn1MQNU/UF8p7qNgIYsgQif05XUggk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 딕셔너리에서 기본값 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 가장 많이 사용하는 dictionary 는 간단히 key값만 있으면 원하는 정보를 찾을 수 있는 편리한 데이터 구조입니다. 하지만 가끔 key가 존재하지 않을 경우, 에러가 발생해서 불편함 있는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 하단광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/59&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/59&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690866065107&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[python] 딕셔너리에서 기본값 설정하기&quot; data-og-description=&quot;파이썬에서 가장 많이 사용하는 dictionary 는 간단히 key값만 있으면 원하는 정보를 찾을 수 있는 편리한 데이터 구조입니다. 하지만 가끔 key가 존재하지 않을 경우, 에러가 발생해서 불편함 있는&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/59&quot; data-og-url=&quot;https://smart-worker.tistory.com/59&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/LQexE/hyTvg2DTeQ/q2tKmZLmlfkUlmfkS3577K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dpqrWG/hyTvnHueW8/cFzrQK7nCe6UkhKHNY2r7K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/hkl9m/hyTvn1MQNU/UF8p7qNgIYsgQif05XUggk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/59&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/59&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/LQexE/hyTvg2DTeQ/q2tKmZLmlfkUlmfkS3577K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dpqrWG/hyTvnHueW8/cFzrQK7nCe6UkhKHNY2r7K/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/hkl9m/hyTvn1MQNU/UF8p7qNgIYsgQif05XUggk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[python] 딕셔너리에서 기본값 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;파이썬에서 가장 많이 사용하는 dictionary 는 간단히 key값만 있으면 원하는 정보를 찾을 수 있는 편리한 데이터 구조입니다. 하지만 가끔 key가 존재하지 않을 경우, 에러가 발생해서 불편함 있는&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>cprofile</category>
      <category>Python</category>
      <category>파이썬</category>
      <category>프로파일링</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/60</guid>
      <comments>https://smart-worker.tistory.com/60#entry60comment</comments>
      <pubDate>Tue, 1 Aug 2023 14:05:33 +0900</pubDate>
    </item>
    <item>
      <title>[python] 딕셔너리에서 기본값 설정하기</title>
      <link>https://smart-worker.tistory.com/59</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬에서 가장 많이 사용하는 dictionary 는 간단히 key값만 있으면 원하는 정보를 찾을 수 있는 편리한 데이터 구조입니다. 하지만 가끔 key가 존재하지 않을 경우, 에러가 발생해서 불편함 있는데요. 이번 글에서는 딕셔너리에서 어떻게 디폴트 값을 설정하는지에 대해 알아보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. dict.get(key, default) 메서드 사용하기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt;2. collections.defaultdict&amp;nbsp;사용하기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt;3. dict.setdefault(key,&amp;nbsp;default)&amp;nbsp;메서드&amp;nbsp;사용하기H2제목&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;559100a94277de819283ac8eec2e65ff.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X4XUg/btspMjNtTlQ/y02ksPQZ16K9Q52DUVBaX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X4XUg/btspMjNtTlQ/y02ksPQZ16K9Q52DUVBaX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X4XUg/btspMjNtTlQ/y02ksPQZ16K9Q52DUVBaX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX4XUg%2FbtspMjNtTlQ%2Fy02ksPQZ16K9Q52DUVBaX0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;420&quot; data-filename=&quot;559100a94277de819283ac8eec2e65ff.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. dict.get(key,&amp;nbsp;default)&amp;nbsp;메서드&amp;nbsp;사용하기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;dict의 get(key, default) 메소드를 이용하면, 디폴트값 설정이 가능하다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딕셔너리에서 키를 사용하여 값을 가져오는 가장 일반적인 방법은 대괄호([])를 사용하는 것입니다. 하지만, 이 방식의 단점은 딕셔너리에 해당 키가 없을 경우 KeyError가 발생한다는 점입니다. 이런 상황을 방지하기 위해 dict.get(key, default) 메서드를 사용할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690863510389&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dictionary = {&quot;apple&quot;: 1, &quot;banana&quot;: 2}
print(dictionary.get(&quot;apple&quot;, 0))  # 1
print(dictionary.get(&quot;cherry&quot;, 0)) # 0  : cherry 가 없어서 디폴트인 0을 출력함&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의&amp;nbsp;코드에서,&amp;nbsp;&quot;apple&quot;은&amp;nbsp;딕셔너리에&amp;nbsp;존재하므로&amp;nbsp;해당&amp;nbsp;값인&amp;nbsp;1이&amp;nbsp;출력되고,&amp;nbsp;&quot;cherry&quot;는&amp;nbsp;딕셔너리에&amp;nbsp;존재하지&amp;nbsp;않으므로&amp;nbsp;기본값인&amp;nbsp;0이&amp;nbsp;출력됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. collections.defaultdict&amp;nbsp;사용하기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;collections.defaultdict 초기값 생성 함수를 정의할 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 번째로 살펴볼 메서드는 collections.defaultdict입니다. 이 메서드를 사용하면, 딕셔너리에 없는 키를 조회할 때도 기본값을 반환할 수 있습니다. 기본값을 설정하기 위해서는 defaultdict를 생성할 때 초기화 함수를 전달해야 합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1690863814430&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from collections import defaultdict

# default는 반드시 호출가능해야 합니다. 
# 아래는 int() 의 결과인 0이 디폴트가 됩니다.
dictionary = defaultdict(int)
dictionary[&quot;apple&quot;] = 1
dictionary[&quot;banana&quot;] = 2

print(dictionary[&quot;apple&quot;])   # 1
print(dictionary[&quot;cherry&quot;])  # 0


# lambda : 'x' --&amp;gt; 문자열 x가 디폴트 값이 됩니다. 
dictionary = defaultdict( lambda : 'x' )
dictionary[&quot;apple&quot;] = 'a'
dictionary[&quot;banana&quot;] = 'b'

print(dictionary[&quot;apple&quot;])   # 'a'
print(dictionary[&quot;cherry&quot;])  # 'x'&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의&amp;nbsp;코드에서는&amp;nbsp;defaultdict(int)로&amp;nbsp;초기화&amp;nbsp;함수로&amp;nbsp;int를&amp;nbsp;전달했습니다.&amp;nbsp;따라서&amp;nbsp;딕셔너리에&amp;nbsp;없는&amp;nbsp;키를&amp;nbsp;조회하면&amp;nbsp;int()의&amp;nbsp;결과인&amp;nbsp;0이&amp;nbsp;반환됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래는 defaultdict의 공식 문서입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.python.org/ko/3/library/collections.html#collections.defaultdict&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.python.org/ko/3/library/collections.html#collections.defaultdict&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690863866706&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;collections &amp;mdash; Container datatypes&quot; data-og-description=&quot;Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python&amp;rsquo;s general purpose built-in containers, dict, list, set, and tuple.,,...&quot; data-og-host=&quot;docs.python.org&quot; data-og-source-url=&quot;https://docs.python.org/ko/3/library/collections.html#collections.defaultdict&quot; data-og-url=&quot;https://docs.python.org/3/library/collections.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iWVQO/hyTvkKKcB0/6cy5HihMZ7LIrUhRWM1O01/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://docs.python.org/ko/3/library/collections.html#collections.defaultdict&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.python.org/ko/3/library/collections.html#collections.defaultdict&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iWVQO/hyTvkKKcB0/6cy5HihMZ7LIrUhRWM1O01/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;collections &amp;mdash; Container datatypes&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python&amp;rsquo;s general purpose built-in containers, dict, list, set, and tuple.,,...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 중간 광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. dict.setdefault(key,&amp;nbsp;default)&amp;nbsp;메서드&amp;nbsp;사용하기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;dict.setdefault(key, default) 로 key가 없으면 디폴트값으로 생성하기&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로 살펴볼 메서드는 dict.setdefault(key, default)입니다. 이 메서드는 딕셔너리에 키가 없을 경우 새로운 키와 기본값을 추가합니다. 그리고 키에 대응하는 값을 반환합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1690864203455&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dictionary = {&quot;apple&quot;: 1, &quot;banana&quot;: 2}

# apple은 키가 있어서 해당값을 리턴함
print(dictionary.setdefault(&quot;apple&quot;, 0))   # 1

# cherry key를 생성하고 디폴트 값이 0을 설정함
print(dictionary.setdefault(&quot;cherry&quot;, 0))  # 0
print(dictionary)  # {'apple': 1, 'banana': 2, 'cherry': 0}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의&amp;nbsp;코드에서&amp;nbsp;&quot;apple&quot;은&amp;nbsp;딕셔너리에&amp;nbsp;존재하므로&amp;nbsp;해당&amp;nbsp;값인&amp;nbsp;1이&amp;nbsp;출력되고,&amp;nbsp;&quot;cherry&quot;는&amp;nbsp;딕셔너리에&amp;nbsp;존재하지&amp;nbsp;않으므로&amp;nbsp;기본값인&amp;nbsp;0이&amp;nbsp;출력되고,&amp;nbsp;동시에&amp;nbsp;{&quot;cherry&quot;:&amp;nbsp;0}이&amp;nbsp;딕셔너리에&amp;nbsp;추가됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/50&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690864630784&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python]람다(lambda) 함수 이해하기&quot; data-og-description=&quot;이 글에서는 Python 프로그래밍 언어에서 사용되는 람다(lambda) 함수에 대해 배울 것입니다. 초보자 분들도 쉽게 이해할 수 있도록 기본적인 개념부터 실제 사용 사례까지 자세히 설명하겠습니다. &quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/50&quot; data-og-url=&quot;https://smart-worker.tistory.com/50&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q0sHH/hyTvddMZ6H/NoyhwrknCeooP0Bh8oL2hK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/cWnoNz/hyTviznJH3/fCZeU89nwPsuAlYpjkvNQK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/oI54y/hyTvhUM2w7/aXmKKUXpEjquq12zAgGgM1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/50&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q0sHH/hyTvddMZ6H/NoyhwrknCeooP0Bh8oL2hK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/cWnoNz/hyTviznJH3/fCZeU89nwPsuAlYpjkvNQK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/oI54y/hyTvhUM2w7/aXmKKUXpEjquq12zAgGgM1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python]람다(lambda) 함수 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 Python 프로그래밍 언어에서 사용되는 람다(lambda) 함수에 대해 배울 것입니다. 초보자 분들도 쉽게 이해할 수 있도록 기본적인 개념부터 실제 사용 사례까지 자세히 설명하겠습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;!-- 하단광고 --&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/49&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/49&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690864679715&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] 리스트와 튜플(tuple)의 차이점 이해하기&quot; data-og-description=&quot;Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/49&quot; data-og-url=&quot;https://smart-worker.tistory.com/49&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/beKQDZ/hyTvmhuTlA/yUcrk4RUAqRZg0A0A2n741/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/b1Gduf/hyTu93wqZF/1x2slkK16NsISP7x1N5oN0/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/W3uNl/hyTvhtHvF1/RRKe5BqFfRJJSkn0KUCt8k/img.png?width=418&amp;amp;height=522&amp;amp;face=0_0_418_522&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/49&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/49&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/beKQDZ/hyTvmhuTlA/yUcrk4RUAqRZg0A0A2n741/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/b1Gduf/hyTu93wqZF/1x2slkK16NsISP7x1N5oN0/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/W3uNl/hyTvhtHvF1/RRKe5BqFfRJJSkn0KUCt8k/img.png?width=418&amp;amp;height=522&amp;amp;face=0_0_418_522');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] 리스트와 튜플(tuple)의 차이점 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>dict</category>
      <category>Dictionary</category>
      <category>Python</category>
      <category>기본값</category>
      <category>디폴트값</category>
      <category>사전</category>
      <category>파이썬</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/59</guid>
      <comments>https://smart-worker.tistory.com/59#entry59comment</comments>
      <pubDate>Tue, 1 Aug 2023 13:39:58 +0900</pubDate>
    </item>
    <item>
      <title>[Python] zip함수로 두 리스트의 데이터 엮어주기</title>
      <link>https://smart-worker.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서 같은 길이를 가지는 두 개의 리스트 데이터를 하나로 엮어주는 zip 함수에 대해서 알아보겠습니다. zip 함수는 여러 개의 리스트를 다루거나, 사전을 생성할 때 유용한 기능합니다. 동시에 코드를 간결하게 만들어 pythonic 한 코드를 만드는 내장 함수 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
  &lt;li&gt; &lt;a href=&quot;#h1&quot;&gt; 1.&amp;nbsp;zip&amp;nbsp;함수란? &lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;#h2&quot;&gt; 2. zip 주요 활용 방법 &amp;amp; 예시&lt;/a&gt; 
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt; &lt;a href=&quot;#h2-1&quot;&gt; 2.1.&amp;nbsp;다양한&amp;nbsp;자료형의&amp;nbsp;결합&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-2&quot;&gt;2.2.&amp;nbsp;길이가&amp;nbsp;다른&amp;nbsp;리스트를&amp;nbsp;zip함수로&amp;nbsp;묶기&lt;/a&gt;  &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-3&quot;&gt;2.3.&amp;nbsp;zip&amp;nbsp;함수의&amp;nbsp;결과&amp;nbsp;다시&amp;nbsp;분리하기&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-4&quot;&gt;2.4.&amp;nbsp;zip으로&amp;nbsp;두&amp;nbsp;리스트를&amp;nbsp;dict&amp;nbsp;으로&amp;nbsp;변경&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2-5&quot;&gt;2.5.&amp;nbsp;여러&amp;nbsp;리스트를&amp;nbsp;동시에&amp;nbsp;순회하기&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;d3bbe733f71f8623822388e70c7dedec.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyTdun/btspsWe3X2X/s1UoUYRjFXNkyaSx8hrwek/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyTdun/btspsWe3X2X/s1UoUYRjFXNkyaSx8hrwek/img.jpg&quot; data-alt=&quot;zip 함수 사용법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyTdun/btspsWe3X2X/s1UoUYRjFXNkyaSx8hrwek/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyTdun%2FbtspsWe3X2X%2Fs1UoUYRjFXNkyaSx8hrwek%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;420&quot; data-filename=&quot;d3bbe733f71f8623822388e70c7dedec.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;zip 함수 사용법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. zip 함수란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;zip은 여러 개의 리스트의 동일한 위치에 있는 요소들을 묶어서 새로운 리스트를 생성한다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;zip 함수는 파이썬의 내장 함수로, 여러 개의 반복 가능한(iterable) 객체를 인자로 받아서 동일한 인덱스의 요소를 튜플 형태로 묶어주는 역할을 합니다. zip은 '압축한다'라는 의미처럼, 두 개의 리스트를 하나로 묶어줍니다. 여러 개의 리스트의 동일한 위치에 있는 요소들을 묶어서 새로운 리스트를 만들어냅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1690807433797&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# zip 함수 사용 예시
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print(list(zipped))  # [(1, 'a'), (2, 'b'), (3, 'c')]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 zip에 대한 공식 문서 링크 입니다. 자세한 내용은 아래 링크를 참고하십시요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.python.org/3/library/functions.html#zip&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.python.org/3/library/functions.html#zip&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690807406009&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Built-in Functions&quot; data-og-description=&quot;The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...&quot; data-og-host=&quot;docs.python.org&quot; data-og-source-url=&quot;https://docs.python.org/3/library/functions.html#zip&quot; data-og-url=&quot;https://docs.python.org/3/library/functions.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cFDQqF/hyTvjqOTND/i09gY47DQiOI5bWiZu4t2K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://docs.python.org/3/library/functions.html#zip&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.python.org/3/library/functions.html#zip&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cFDQqF/hyTvjqOTND/i09gY47DQiOI5bWiZu4t2K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Built-in Functions&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h2&quot;  style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. zip 활용 방법 &amp;amp; 예시&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다양한 zip의 활용 방법을 소개하겠습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3  id=&quot;h2-1&quot; style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.1. 다양한 자료형의 결합&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;zip은 iterable한 모든 객체에 동시에 사용할 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;zip 함수는 리스트뿐만 아니라 모든 종류의 반복 가능한 객체에 적용할 수 있습니다. 예를 들어, 리스트와 튜플을 zip 함수를 이용해 결합할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690807539604&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 리스트와 튜플을 zip 함수로 묶는 예시
list1 = [1, 2, 3]
tuple1 = ('a', 'b', 'c')
zipped = zip(list1, tuple1)
print(list(zipped))  # [(1, 'a'), (2, 'b'), (3, 'c')]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;!-- 중간 광고 --&gt; 
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block; text-align:center;&quot;
     data-ad-layout=&quot;in-article&quot;
     data-ad-format=&quot;fluid&quot;
     data-ad-client=&quot;ca-pub-3133953286428901&quot;
     data-ad-slot=&quot;9113111958&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;h3  id=&quot;h2-2&quot;  style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.2. 길이가 다른 리스트를 zip함수로 묶기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;zip은 최소 길이의 리스트를 기준으로 데이터를 엮습니다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;길이가 다른 리스트를 zip 함수로 묶으면 어떻게 될까요? zip 함수는 길이가 짧은 리스트를 기준으로 묶어줍니다. 그래서 길이가 긴 리스트의 남은 요소는 무시됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690807573229&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 길이가 다른 리스트를 zip 함수로 묶는 예시
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)
print(list(zipped))  # [(1, 'a'), (2, 'b'), (3, 'c')]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3  id=&quot;h2-3&quot;  style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.3. zip 함수의 결과 다시 분리하기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;zip(*zipped) 형태로 이미 zip한 결과를 *(asterisk)를 이용해 분리할 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;zip 함수를 사용해서 묶은 리스트는 다시 원래의 상태로 돌려놓을 수 있습니다. 이때는 zip 함수에 *(asterisk)를 붙여서 사용합니다. 이를 'unzipping'이라고 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690807693854&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# zip 함수로 묶은 리스트를 다시 분리하는 예시
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
zipped = zip(list1, list2)

unzipped_list1, unzipped_list2 = zip(*zipped)
print(list(unzipped_list1))  # [1, 2, 3]
print(list(unzipped_list2))  # ['a', 'b', 'c']&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3  id=&quot;h2-4&quot;  style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.4. zip으로 두 리스트를 dict 으로 변경&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&quot;dict( zip(l1, l2) )&quot; 와 같이 두 리스트를 쉽게 dictionary 형태로 변경할 수 있습니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;zip 함수는 두 개의 리스트를 튜플로 묶어주는 기능이 있기 때문에, 이를 활용하여 두 리스트를 사전(dict) 형태로 쉽게 바꿀 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690807802259&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# zip 함수와 dict를 함께 사용하는 예시
keys = ['name', 'age', 'job']
values = ['Alice', 25, 'Engineer']

dictionary = dict(zip(keys, values))
print(dictionary)  # Output: {'name': 'Alice', 'age': 25, 'job': 'Engineer'}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서&amp;nbsp;list1의&amp;nbsp;요소들이&amp;nbsp;키(key)가&amp;nbsp;되고,&amp;nbsp;list2의&amp;nbsp;요소들이&amp;nbsp;값(value)이&amp;nbsp;되는&amp;nbsp;사전을&amp;nbsp;만들어낼&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3  id=&quot;h2-5&quot;  style=&quot;font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;&quot; data-ke-size=&quot;size23&quot;&gt;2.5. 여러&amp;nbsp;리스트를&amp;nbsp;동시에&amp;nbsp;순회하기&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;여러 리스트를 동시에 순회할 때 zip은 매우 유용합니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파이썬의&amp;nbsp;for&amp;nbsp;루프를&amp;nbsp;사용하여&amp;nbsp;리스트를&amp;nbsp;순회하면서&amp;nbsp;동일한&amp;nbsp;인덱스의&amp;nbsp;다른&amp;nbsp;리스트의&amp;nbsp;요소를&amp;nbsp;참조해야&amp;nbsp;할&amp;nbsp;때도&amp;nbsp;있습니다.&amp;nbsp;이럴&amp;nbsp;때&amp;nbsp;zip&amp;nbsp;함수를&amp;nbsp;사용하면&amp;nbsp;코드를&amp;nbsp;간결하게&amp;nbsp;만들&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690808041953&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f'{name} is {age} years old.')

# Output:
# Alice is 25 years old.
# Bob is 30 years old.
# Charlie is 35 years old.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;예제에서는&amp;nbsp;zip&amp;nbsp;함수가&amp;nbsp;names와&amp;nbsp;ages&amp;nbsp;리스트를&amp;nbsp;동시에&amp;nbsp;순회할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;해줍니다.&amp;nbsp;각&amp;nbsp;리스트의&amp;nbsp;동일&amp;nbsp;위치에&amp;nbsp;있는&amp;nbsp;요소들이&amp;nbsp;순서대로&amp;nbsp;출력됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/47&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690808143740&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python]List Comprehension을 활용한 코드 최적화&quot; data-og-description=&quot;이번에는 Python의 강력한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 초보자가 사용하기에는 문법이 약간 복잡하지만, 한 번 알면 이해하고 활용하는 데 큰 어려&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/47&quot; data-og-url=&quot;https://smart-worker.tistory.com/47&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f8IjY/hyTvoTcnTo/KSMdugBnE3OiQvIyU1ANBK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/WKqyK/hyTvl90uXa/f4hK7SxKFV4BcSSYL6rHFK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/FLCo3/hyTvagkg9Z/8EpB0oYZrqbHJTYOPyWgzK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/47&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f8IjY/hyTvoTcnTo/KSMdugBnE3OiQvIyU1ANBK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/WKqyK/hyTvl90uXa/f4hK7SxKFV4BcSSYL6rHFK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/FLCo3/hyTvagkg9Z/8EpB0oYZrqbHJTYOPyWgzK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python]List Comprehension을 활용한 코드 최적화&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번에는 Python의 강력한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 초보자가 사용하기에는 문법이 약간 복잡하지만, 한 번 알면 이해하고 활용하는 데 큰 어려&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
  
&lt;/a&gt;&lt;/figure&gt;

&lt;!-- 마지막 광고 --&gt; 
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block; text-align:center;&quot;
     data-ad-layout=&quot;in-article&quot;
     data-ad-format=&quot;fluid&quot;
     data-ad-client=&quot;ca-pub-3133953286428901&quot;
     data-ad-slot=&quot;9113111958&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;





&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/56&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/56&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690808172116&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] 파이썬 enumerate 함수로 For 문 돌리기&quot; data-og-description=&quot;python을 이용해 for 루프를 돌릴 경우가 많습니다. 이 때 몇 회의 루프를 돌았는지, for 문 상에서 확인해야 되는 경우가 있는데요. enumerate는 이런 루프 횟수를 체크할 때 매우 유용한 함수이고, 매&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/56&quot; data-og-url=&quot;https://smart-worker.tistory.com/56&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bGYejZ/hyTvlCb4Qq/NotPB9FeDHxHjBC5atrUh1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/rKIBF/hyTu99AGMh/gX0kEwVF1G1PkZzVXHR740/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/f5AaJ/hyTvgHDGaG/KAhILs1k7zBtGLcGmXKQR1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/56&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/56&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bGYejZ/hyTvlCb4Qq/NotPB9FeDHxHjBC5atrUh1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/rKIBF/hyTu99AGMh/gX0kEwVF1G1PkZzVXHR740/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/f5AaJ/hyTvgHDGaG/KAhILs1k7zBtGLcGmXKQR1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] 파이썬 enumerate 함수로 For 문 돌리기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;python을 이용해 for 루프를 돌릴 경우가 많습니다. 이 때 몇 회의 루프를 돌았는지, for 문 상에서 확인해야 되는 경우가 있는데요. enumerate는 이런 루프 횟수를 체크할 때 매우 유용한 함수이고, 매&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>List</category>
      <category>Python</category>
      <category>ZIP</category>
      <category>zip활용</category>
      <category>두리스트엮기</category>
      <category>리스트동시순회</category>
      <category>파이썬</category>
      <category>파이썬zip</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/57</guid>
      <comments>https://smart-worker.tistory.com/57#entry57comment</comments>
      <pubDate>Mon, 31 Jul 2023 21:59:46 +0900</pubDate>
    </item>
    <item>
      <title>[Python] 파이썬 enumerate 함수로 For 문 돌리기</title>
      <link>https://smart-worker.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;python을 이용해 for 루프를 돌릴 경우가 많습니다. 이 때 몇 회의 루프를 돌았는지, for 문 상에서 확인해야 되는 경우가 있는데요. enumerate는 이런 루프 횟수를 체크할 때 매우 유용한 함수이고, 매우 간결하기 때문에 진정 pythonic 한 함수이기도 합니다. 이번 글에서는 python enumerate 함수에 대해서 소개해 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;book-toc&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#h1&quot;&gt; 1. enumerate 함수란? &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h2&quot;&gt; 2. enumerate 활용 방법 &amp;amp; 예시&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h3&quot;&gt; 3. range와 enumerate 비교&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#h4&quot;&gt; 4. enumerate 사용 팁( 시작 번호 변경 등)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9401dbb5d9082250c384aef106d754c7.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sYIGb/btspxqmr4hN/VKzPMAsKGPIoDUavS7gpo1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sYIGb/btspxqmr4hN/VKzPMAsKGPIoDUavS7gpo1/img.jpg&quot; data-alt=&quot;python enumerate로 for문 돌리기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sYIGb/btspxqmr4hN/VKzPMAsKGPIoDUavS7gpo1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsYIGb%2Fbtspxqmr4hN%2FVKzPMAsKGPIoDUavS7gpo1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;420&quot; data-filename=&quot;9401dbb5d9082250c384aef106d754c7.jpg&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;python enumerate로 for문 돌리기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 id=&quot;h1&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;1. enumerate 함수란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;enumerate으로 반복문에서 목록의 인덱스와 값을 동시에 가져올 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬은&amp;nbsp;많은&amp;nbsp;편리한&amp;nbsp;기능들을&amp;nbsp;내장&amp;nbsp;함수&amp;nbsp;형태로&amp;nbsp;제공하며,&amp;nbsp;이들&amp;nbsp;중&amp;nbsp;하나가&amp;nbsp;바로&amp;nbsp;enumerate입니다.&amp;nbsp;enumerate는&amp;nbsp;'열거하다'라는&amp;nbsp;뜻이며,&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;이&amp;nbsp;함수를&amp;nbsp;사용하면&amp;nbsp;반복문을&amp;nbsp;사용하는&amp;nbsp;동안&amp;nbsp;목록의&amp;nbsp;인덱스와&amp;nbsp;값을&amp;nbsp;동시에&amp;nbsp;가져올&amp;nbsp;수&amp;nbsp;있습니다.&lt;/span&gt;&amp;nbsp;이&amp;nbsp;기능은&amp;nbsp;데이터를&amp;nbsp;처리하거나&amp;nbsp;반복&amp;nbsp;작업을&amp;nbsp;수행할&amp;nbsp;때&amp;nbsp;매우&amp;nbsp;유용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 enumerate는 아래의 코드와 동일하게 동작합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1690805564316&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Equivalent to:
def enumerate(iterable, start=0):
    n = start
    for elem in iterable:
        yield n, elem # index와 목록의 요소를 동시에 리턴한다.
        n += 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세한 사항은 아래 enumerate에 대한 python 공식 문서를 참고하십시요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.python.org/3/library/functions.html#enumerate&quot;&gt;https://docs.python.org/3/library/functions.html#enumerate&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690805665564&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Built-in Functions&quot; data-og-description=&quot;The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...&quot; data-og-host=&quot;docs.python.org&quot; data-og-source-url=&quot;https://docs.python.org/3/library/functions.html#enumerate&quot; data-og-url=&quot;https://docs.python.org/3/library/functions.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/caznmC/hyTvlITq9I/kqse6Cst5mDIfzJyCPmJC0/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://docs.python.org/3/library/functions.html#enumerate&quot; data-source-url=&quot;https://docs.python.org/3/library/functions.html#enumerate&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/caznmC/hyTvlITq9I/kqse6Cst5mDIfzJyCPmJC0/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Built-in Functions&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;docs.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h2&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;2. enumerate&amp;nbsp;활용&amp;nbsp;방법&amp;nbsp;&amp;amp;&amp;nbsp;예시&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;인덱스와 값을 포함한 튜플을 반환하여 간결한 for문을 작성할 수 있다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&quot;for i, ele in enumerate(mylist)&quot; &lt;b&gt;형태로 인덱스와 값을 받을 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기본적으로&amp;nbsp;enumerate&amp;nbsp;함수는&amp;nbsp;인덱스와&amp;nbsp;값을&amp;nbsp;포함하는&amp;nbsp;튜플을&amp;nbsp;반환합니다.&amp;nbsp;이를&amp;nbsp;이용하여&amp;nbsp;for&amp;nbsp;문을&amp;nbsp;사용할&amp;nbsp;때,&amp;nbsp;추가적인&amp;nbsp;변수를&amp;nbsp;선언하여&amp;nbsp;인덱스를&amp;nbsp;추적할&amp;nbsp;필요가&amp;nbsp;없습니다. &lt;br /&gt;&lt;br /&gt;아래는&amp;nbsp;enumerate&amp;nbsp;함수를&amp;nbsp;활용하는&amp;nbsp;간단한&amp;nbsp;예시입니다:&lt;/p&gt;
&lt;pre id=&quot;code_1690805894073&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;]
for i, fruit in enumerate(fruits):
    print(f&quot;과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다&quot;)
    
# 출력
#과일 리스트에서 0 인덱스 요소는 apple 이다
#과일 리스트에서 1 인덱스 요소는 banana 이다
#과일 리스트에서 2 인덱스 요소는 cherry 이다&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;&lt;!-- 중간광고1 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;h2 id=&quot;h3&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;3. range와&amp;nbsp;enumerate&amp;nbsp;비교&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;range를 이용해 동일하게 구현할 수 있으나, 가독성이 떨어 진다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;range&amp;nbsp;함수를&amp;nbsp;사용하여&amp;nbsp;for문을&amp;nbsp;작성하는&amp;nbsp;경우,&amp;nbsp;인덱스를&amp;nbsp;통해&amp;nbsp;리스트의&amp;nbsp;값을&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;그러나&amp;nbsp;이&amp;nbsp;방식은&amp;nbsp;가독성이&amp;nbsp;떨어지고&amp;nbsp;코드가&amp;nbsp;복잡해질&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;다음은&amp;nbsp;range&amp;nbsp;함수를&amp;nbsp;사용한&amp;nbsp;예시입니다:&lt;/p&gt;
&lt;pre id=&quot;code_1690806068852&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;]
for i in range(len(fruits)):
    print(f&quot;과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;enumerate&amp;nbsp;함수를&amp;nbsp;사용하면&amp;nbsp;코드가&amp;nbsp;더욱&amp;nbsp;간결하고&amp;nbsp;가독성이&amp;nbsp;좋아집니다.&amp;nbsp;인덱스와&amp;nbsp;값을&amp;nbsp;한&amp;nbsp;번에&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있어&amp;nbsp;코드를&amp;nbsp;더욱&amp;nbsp;직관적으로&amp;nbsp;만들어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;h4&quot; style=&quot;border-bottom: 3px solid #707070; font-weight: bold; padding: 5px;&quot; data-ke-size=&quot;size26&quot;&gt;4.&amp;nbsp;enumerate&amp;nbsp;사용&amp;nbsp;팁(시작&amp;nbsp;번호&amp;nbsp;변경&amp;nbsp;등)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;start 인자를 사용하면, 시작 순서를 변경할 수 있다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;enumerate&amp;nbsp;함수는&amp;nbsp;선택적으로&amp;nbsp;'start'&amp;nbsp;인수를&amp;nbsp;받을&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이&amp;nbsp;인수를&amp;nbsp;사용하면&amp;nbsp;인덱스의&amp;nbsp;시작&amp;nbsp;번호를&amp;nbsp;지정할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;기본값은&amp;nbsp;0이지만,&amp;nbsp;다른&amp;nbsp;숫자를&amp;nbsp;지정하여&amp;nbsp;인덱스의&amp;nbsp;시작&amp;nbsp;값을&amp;nbsp;조정할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;다음은 'start' 인수를 사용한 예시입니다.&lt;br /&gt;이&amp;nbsp;코드를&amp;nbsp;실행하면,&amp;nbsp;인덱스가&amp;nbsp;1부터&amp;nbsp;시작하는&amp;nbsp;다음과&amp;nbsp;같은&amp;nbsp;결과를&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있습니다:&lt;/p&gt;
&lt;pre id=&quot;code_1690806151046&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# start 인수로 시작 숫자를 변경할 수 있다.
fruits = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;]
for i, fruit in enumerate(fruits, start=1):
    print(f&quot;과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다&quot;)
    
#출력
#과일 리스트에서 1 인덱스 요소는 apple 이다
#과일 리스트에서 2 인덱스 요소는 banana 이다
#과일 리스트에서 3 인덱스 요소는 cherry 이다&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상 enumerate 사용 팁이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/47&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690806802921&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python]List Comprehension을 활용한 코드 최적화&quot; data-og-description=&quot;이번에는 Python의 강력한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 초보자가 사용하기에는 문법이 약간 복잡하지만, 한 번 알면 이해하고 활용하는 데 큰 어려&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/47&quot; data-og-url=&quot;https://smart-worker.tistory.com/47&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f8IjY/hyTvoTcnTo/KSMdugBnE3OiQvIyU1ANBK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/WKqyK/hyTvl90uXa/f4hK7SxKFV4BcSSYL6rHFK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/FLCo3/hyTvagkg9Z/8EpB0oYZrqbHJTYOPyWgzK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/47&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/47&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f8IjY/hyTvoTcnTo/KSMdugBnE3OiQvIyU1ANBK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/WKqyK/hyTvl90uXa/f4hK7SxKFV4BcSSYL6rHFK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/FLCo3/hyTvagkg9Z/8EpB0oYZrqbHJTYOPyWgzK/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python]List Comprehension을 활용한 코드 최적화&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번에는 Python의 강력한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 초보자가 사용하기에는 문법이 약간 복잡하지만, 한 번 알면 이해하고 활용하는 데 큰 어려&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 중간광고1 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3133953286428901&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/49&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/49&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690806817442&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python] 리스트와 튜플(tuple)의 차이점 이해하기&quot; data-og-description=&quot;Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷&quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/49&quot; data-og-url=&quot;https://smart-worker.tistory.com/49&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bsLpvb/hyTvoyUbwN/5wTVGQHAvpdWR5Ooy1Sr70/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/YdJZh/hyTviel652/ymBiwiCFfcmffgVkCmwpK1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dcuL62/hyTviFre1K/njZ6ZBU94NfWP2Nxwb6YpK/img.png?width=418&amp;amp;height=522&amp;amp;face=0_0_418_522&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/49&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/49&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bsLpvb/hyTvoyUbwN/5wTVGQHAvpdWR5Ooy1Sr70/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/YdJZh/hyTviel652/ymBiwiCFfcmffgVkCmwpK1/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/dcuL62/hyTviFre1K/njZ6ZBU94NfWP2Nxwb6YpK/img.png?width=418&amp;amp;height=522&amp;amp;face=0_0_418_522');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python] 리스트와 튜플(tuple)의 차이점 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smart-worker.tistory.com/50&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1690806832092&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Python]람다(lambda) 함수 이해하기&quot; data-og-description=&quot;이 글에서는 Python 프로그래밍 언어에서 사용되는 람다(lambda) 함수에 대해 배울 것입니다. 초보자 분들도 쉽게 이해할 수 있도록 기본적인 개념부터 실제 사용 사례까지 자세히 설명하겠습니다. &quot; data-og-host=&quot;smart-worker.tistory.com&quot; data-og-source-url=&quot;https://smart-worker.tistory.com/50&quot; data-og-url=&quot;https://smart-worker.tistory.com/50&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bwJ5VM/hyTvatR0kc/UbKKXrVCecKvn8UsN2keIk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/vONLF/hyTvlWtuxC/gv08Jl0wnN16i563Q68w31/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/JDUEI/hyTvkcaFUA/GllvrfCLZP47E8Tfi8kzLk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://smart-worker.tistory.com/50&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smart-worker.tistory.com/50&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bwJ5VM/hyTvatR0kc/UbKKXrVCecKvn8UsN2keIk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/vONLF/hyTvlWtuxC/gv08Jl0wnN16i563Q68w31/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420,https://scrap.kakaocdn.net/dn/JDUEI/hyTvkcaFUA/GllvrfCLZP47E8Tfi8kzLk/img.jpg?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Python]람다(lambda) 함수 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 Python 프로그래밍 언어에서 사용되는 람다(lambda) 함수에 대해 배울 것입니다. 초보자 분들도 쉽게 이해할 수 있도록 기본적인 개념부터 실제 사용 사례까지 자세히 설명하겠습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smart-worker.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>코딩/파이썬</category>
      <category>enumerate</category>
      <category>Python</category>
      <category>python enumerate</category>
      <category>range</category>
      <category>파이썬</category>
      <category>파이썬enumerate</category>
      <author>손느린 프로그래머</author>
      <guid isPermaLink="true">https://smart-worker.tistory.com/56</guid>
      <comments>https://smart-worker.tistory.com/56#entry56comment</comments>
      <pubDate>Mon, 31 Jul 2023 21:28:59 +0900</pubDate>
    </item>
  </channel>
</rss>