<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Sowon.log</title>
        <link>https://velog.io/</link>
        <description>개발자 전직을 향해 나아가고 있는 Technical Sales Engineer</description>
        <lastBuildDate>Sat, 30 Sep 2023 13:17:22 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>Sowon.log</title>
            <url>https://velog.velcdn.com/images/joel_lee/profile/02ecd8c7-e14c-4e39-abc2-ce117836758f/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. Sowon.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/joel_lee" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-29]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-29</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-29</guid>
            <pubDate>Sat, 30 Sep 2023 13:17:22 GMT</pubDate>
            <description><![CDATA[<p>&lt;&lt; [[2023-09-28]] | [[2023-09-30]]&gt;&gt;</p>
<h1 id="2023-09-29">2023-09-29</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>Those who dream by day are cognizant of many things which escape those who dream only by night.
— <cite>Edgar Allan Poe</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> SQL</li>
<li><input disabled="" type="checkbox"> 역행자</li>
</ul>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> 데일리 리포트</li>
<li><input checked="" disabled="" type="checkbox"> 22 전략 - 독서</li>
<li><input disabled="" type="checkbox"> 22 전략 - 글쓰기</li>
</ul>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Status</th>
<th>Review</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11:00</td>
<td>기상, &#39; 나는 왜 자꾸 내 탓을 할까 &#39; 읽기</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>봄이 산책, 점심</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13:00</td>
<td>봄이 산책, 점심</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>14:00</td>
<td>봄이 산책, 점심</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>16:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td>SQL</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td>SQL</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>저녁, 산책</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td>SQL</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td>SQL, 블로깅, &#39; 나는 왜 자꾸 내 탓을 할까 &#39; 정리</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td>&#39; 나는 왜 자꾸 내 탓을 할까 &#39; 정리 &amp; 블로깅</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>01:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>02:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned</p>
<ul>
<li>SQL <a href="https://velog.io/@joel_lee/TIL-SQL-Ch2.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%A1%B0%ED%9A%8C-1">https://velog.io/@joel_lee/TIL-SQL-Ch2.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%A1%B0%ED%9A%8C-1</a></li>
<li></li>
</ul>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
</blockquote>
<hr>
<h1 id="note">Note</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] SQL Ch2. 데이터 생성과 조회 1]]></title>
            <link>https://velog.io/@joel_lee/TIL-SQL-Ch2.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%A1%B0%ED%9A%8C-1</link>
            <guid>https://velog.io/@joel_lee/TIL-SQL-Ch2.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%83%9D%EC%84%B1%EA%B3%BC-%EC%A1%B0%ED%9A%8C-1</guid>
            <pubDate>Fri, 29 Sep 2023 12:38:29 GMT</pubDate>
            <description><![CDATA[<h1 id="테이블-생성-sql-ddl">테이블 생성 SQL (DDL)</h1>
<h2 id="create">CREATE</h2>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li>DDL : Data Definition Language</li>
</ul>
</blockquote>
<p>#mysql/create #mysql/select</p>
<pre><code class="language-mysql">create table book_list (
    book_no        varchar(16)    not null,
    book_name    varchar(50),
    writer        varchar(50),
    publisher    varchar(30),
    reg_date    date,
    price        int
);

show databases;
use mysql;</code></pre>
<h2 id="alter">ALTER</h2>
<p>#mysql/alter/add #mysql/alter/modify #mysql/alter/change #mysql/alter/drop #mysql/alter/rename</p>
<pre><code class="language-mysql">alter table book_list add column description varchar(1000);
alter table book_list modify column book_name varchar(100);
alter table book_list change column description book_desc varchar(1000);
alter table book_list drop column book_desc;
alter table book_list rename book_info;</code></pre>
<h2 id="drop_truncate">DROP_TRUNCATE</h2>
<p>#mysql/truncate #mysql/drop</p>
<blockquote>
<p>[!NOTE] trincate 와 drop</p>
<ul>
<li>truncate : 데이터만 삭제<ul>
<li>모든 행 삭제</li>
</ul>
</li>
<li>drop : 데이터와 테이블 삭제</li>
<li><strong>둘 다 롤백이 안 됨</strong></li>
</ul>
</blockquote>
<pre><code class="language-mysql">truncate table book_list;
drop table book_list;</code></pre>
<h1 id="테이블-생성-sql-dml">테이블 생성 SQL (DML)</h1>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li>DML : Data Manipulation Language</li>
</ul>
</blockquote>
<h2 id="insert">INSERT</h2>
<p>#mysql/insert</p>
<pre><code class="language-mysql">insert into book_list values (&#39;9791168473690&#39;, &#39;세이노의 가르침&#39;, &#39;세이노&#39;, &#39;데이원&#39;, &#39;20230302&#39;,7200);

insert into book_list (book_no, book_name, writer, publisher, price)
values (&#39;2138092823&#39;, &#39;몽&#39;, &#39;모모&#39;, &#39;ㅇㅇ&#39;, 10000)

insert into book_list values (&#39;97asd1asd1000&#39;, &#39;세이노의 가르침&#39;, &#39;세이노&#39;, &#39;데이원&#39;, &#39;20230302&#39;,7200);</code></pre>
<h2 id="update">UPDATE</h2>
<p>#mysql/update</p>
<blockquote>
<p>[!NOTE] UPDATE</p>
<ul>
<li><strong>조건절 (where)</strong> 이 없으면 모든 row 에 대해 업데이트</li>
</ul>
</blockquote>
<pre><code class="language-mysql">update book_list set reg_date = &#39;20230815&#39; where book_name=&#39;몽&#39;;</code></pre>
<h2 id="delete">DELETE</h2>
<p>#mysql/delete</p>
<blockquote>
<p>[!NOTE] DELETE</p>
<ul>
<li><strong>조건절 (where)</strong> 이 없으면 모든 데이터 삭제</li>
<li>컬럼 데이터 삭제는 update 을 이용해 null 로 만들자</li>
</ul>
</blockquote>
<pre><code class="language-mysql">delete from book_list where publisher = &#39;ㅇㅇ&#39;;</code></pre>
<h1 id="테이블-조회-sql-easy">테이블 조회 SQL (Easy)</h1>
<h2 id="select-alias">SELECT, ALIAS</h2>
<p>#mysql/select #mysql/distinct #mysql/count</p>
<pre><code class="language-mysql">select * from melon_chart limit 3;

select singer from melon_chart;
select distinct singer from melon_chart;
select count(distinct singer) as cnt from melon_chart;
select count(distinct singer) &quot;가수&quot; from melon_chart as mc;

select ranking, song from melon_chart where singer = &#39;NewJeans&#39;;

select * from melon_chart where singer = &#39;NewJeans&#39; and ranking &lt;= 5;

select * from melon_chart where singer = &#39;정국&#39; or singer = &#39;박재정&#39;;</code></pre>
<h2 id="where-in-like-between">WHERE (IN, LIKE, BETWEEN)</h2>
<p>#mysql/where #mysql/where/in #mysql/where/like #mysql/where/between</p>
<pre><code class="language-mysql">select * from melon_chart where song = &#39;I AM&#39;;

select * from melon_chart where song in (&#39;I AM&#39;, &#39;Super Shy&#39;, &#39;Spicy&#39;);
select * from melon_chart where song = &#39;I AM&#39; or song = &#39;Super Shy&#39; or song = &#39;Spicy&#39;;

select * from melon_chart where song = &#39;I AM&#39; or song = &#39;Super Shy&#39; or song = &#39;Spicy&#39; and singer = &#39;NewJeans&#39;;
select * from melon_chart where (song = &#39;I AM&#39; or song = &#39;Super Shy&#39; or song = &#39;Spicy&#39;) and singer = &#39;NewJeans&#39;;

select * from melon_chart where song like &#39;_카%&#39;;

select * from like_test where col like &#39;%\%%&#39;;
select * from like_test where col like &#39;%\_%&#39;;
select * from like_test where col like &#39;%#%%&#39; escape &#39;#&#39;;
select * from like_test where col like &#39;%$_%&#39; escape &#39;$&#39;;

select * from melon_chart where like_no between 100000 and 150000;</code></pre>
<h2 id="order-by-limit">ORDER BY (LIMIT)</h2>
<p>#mysql/order_by</p>
<pre><code class="language-mysql">select * from melon_chart order by ranking desc;

select song, singer from melon_chart order by ranking;

select * from melon_chart where singer not in (&#39;정국&#39;, &#39;박재정&#39;) order by song;

select * from melon_chart order by singer asc, like_no desc;

select * from melon_chart order by like_no desc limit 3, 5;</code></pre>
<h2 id="집계-함수">집계 함수</h2>
<p>#mysql/count #mysql/sum #mysql/avg #mysql/min #mysql/max</p>
<pre><code class="language-mysql">select count(*), count(1), count(col1), count(col2) from function_test;
select count(*) from melon_chart where like_no &gt; 100000;

select sum(col1), sum(col2) from function_test;
select avg(col1), avg(col2) from function_test;
select min(col1), min(col2) from function_test;
select max(col1), max(col2) from function_test;</code></pre>
<h2 id="group-by">GROUP BY</h2>
<p>#mysql/group_by</p>
<pre><code class="language-mysql">select * from animal_info group by animal;
select animal, type, count(*) from animal_info where animal=&#39;강아지&#39; group by animal, type;
select animal, type, min(age), max(age) from animal_info group by animal, type order by animal;</code></pre>
<h2 id="having">HAVING</h2>
<p>#mysql/having</p>
<pre><code class="language-mysql">select animal, type, count(*)
    from animal_info
    where count(*) &gt; 2
    group by animal, type;

select animal, type, count(*) 
    from animal_info 
    where animal = &#39;고양이&#39;
    group by animal, type
    having count(*) &gt; 2
    order by count(*) desc;</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-28]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-28</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-28</guid>
            <pubDate>Thu, 28 Sep 2023 14:41:34 GMT</pubDate>
            <description><![CDATA[<p>&lt;&lt; [[2023-09-27]] | [[2023-09-29]]&gt;&gt;</p>
<h1 id="2023-09-28">2023-09-28</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>It is easier to live through someone else than to become complete yourself.
— <cite>Betty Friedan</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> SQL 시작!</li>
<li><input checked="" disabled="" type="checkbox"> 선물 사기 : 일단 딱 15명인데 얼마나 살까</li>
<li><input checked="" disabled="" type="checkbox"> 세컨드 브레인 끝내기!</li>
</ul>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker</p>
<ul>
<li><input checked="" disabled="" type="checkbox"> 데일리 리포트</li>
<li><input checked="" disabled="" type="checkbox"> 22전략 - 독서</li>
<li><input checked="" disabled="" type="checkbox"> 22전략 - 글쓰기</li>
</ul>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Status</th>
<th>Review</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td>아침, 세컨드 브레인 읽기</td>
<td></td>
<td>🟥</td>
<td>어제 결국 3시까지 책 읽어서 늦잠 잤다.</td>
</tr>
<tr>
<td>09:00</td>
<td>세컨드 브레인 읽고 정리하기</td>
<td></td>
<td>🟥</td>
<td>좀 더 빨리 자고 빨리 일어날 수 있도록 하자.</td>
</tr>
<tr>
<td>10:00</td>
<td>봄이 산책, 선물 사기</td>
<td></td>
<td>🟥</td>
<td>수면유도제가 있으니 적극적으로 활용할 것.</td>
</tr>
<tr>
<td>11:00</td>
<td>봄이 산책, 선물 사기</td>
<td>기상, &#39;나는 왜 자꾸 내 탓을 할까&#39;읽기</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>점심</td>
<td>봄이 산책, 선물 사기, 점심</td>
<td>🟩</td>
<td>붕어빵 쿠키 샀다! 만세~</td>
</tr>
<tr>
<td>13:00</td>
<td>SQL 시작!</td>
<td>봄이 산책, 선물 사기, 점심</td>
<td>🟩</td>
<td>그거 말고 또 눈독 들여 놓은 거 있으니, 나중에 사자</td>
</tr>
<tr>
<td>14:00</td>
<td>SQL</td>
<td>봄이 산책, 선물 사기, 점심</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>SQL</td>
<td>SQL 시작!</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>16:00</td>
<td>필요서류 재검토</td>
<td>SQL</td>
<td>🟨</td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td></td>
<td>필요 서류 재검토, 낮잠</td>
<td>🟨</td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td></td>
<td>낮잠</td>
<td>🟨</td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>저녁</td>
<td>필요 서류 다시 쓰기</td>
<td>🟨</td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td></td>
<td>저녁</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td></td>
<td>저녁, SQL 챕터 1 끝</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td></td>
<td>데일리 리포트, 블로깅, 세컨드 브레인 정리</td>
<td>🟩</td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td></td>
<td>세컨드 브레인 정리 &amp; 블로깅, 데일리 리포트</td>
<td></td>
<td></td>
</tr>
<tr>
<td>24:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>01:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>02:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned</p>
<ul>
<li>SQL : <a href="https://velog.io/@joel_lee/SQL-Ch.1-SQL%EA%B8%B0%EC%B4%88-DBMS-Modeling-SQL-sites-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0">https://velog.io/@joel_lee/SQL-Ch.1-SQL%EA%B8%B0%EC%B4%88-DBMS-Modeling-SQL-sites-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0</a></li>
<li>[[브러시업 2023-09-28]]</li>
<li>세컨드 브레인 정리 끝 : <a href="https://velog.io/@joel_lee/%EC%84%B8%EC%BB%A8%EB%93%9C-%EB%B8%8C%EB%A0%88%EC%9D%B8-1-IntroChap.1">https://velog.io/@joel_lee/%EC%84%B8%EC%BB%A8%EB%93%9C-%EB%B8%8C%EB%A0%88%EC%9D%B8-1-IntroChap.1</a></li>
</ul>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
<ul>
<li>예정보다 세 시간이나 더 꿀잠을 자 버렸다 😱</li>
<li>지망동기는 단순히 지망동기를 말하는 게 아니라 &quot;왜 지망하는가&quot;에 더해 ==&quot;기업이 왜 자신을 고용해야 하나&quot;==를 설명하는 것이 중요.</li>
<li>SQL 기본 개념과 설치 끝!</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[SQL] Ch.1 SQL기초 (DBMS, Modeling, SQL sites, 공공 데이터)]]></title>
            <link>https://velog.io/@joel_lee/SQL-Ch.1-SQL%EA%B8%B0%EC%B4%88-DBMS-Modeling-SQL-sites-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0</link>
            <guid>https://velog.io/@joel_lee/SQL-Ch.1-SQL%EA%B8%B0%EC%B4%88-DBMS-Modeling-SQL-sites-%EA%B3%B5%EA%B3%B5-%EB%8D%B0%EC%9D%B4%ED%84%B0</guid>
            <pubDate>Thu, 28 Sep 2023 13:06:09 GMT</pubDate>
            <description><![CDATA[<h1 id="dbms">DBMS</h1>
<p>#DBMS</p>
<blockquote>
<p>[!info] DBMS</p>
<ul>
<li>DBMS = DataBase Management System<ul>
<li>RDBMS = Relational DBMS : 관계형 데이터베이스. 관계형 모델을 사용.<ul>
<li><img src="https://i.imgur.com/AtxbVIw.png" alt=""></li>
</ul>
</li>
<li>NoSQL - Not only SQL<ul>
<li><img src="https://i.imgur.com/TlQpHF9.png" alt=""></li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
<h1 id="테이블과-모델링">테이블과 모델링</h1>
<p>#Modeling</p>
<blockquote>
<p>[!info] 모델링</p>
<ul>
<li>데이터를 어떤 식으로 그룹화해서 저장할지를 미리 설계하는 과정<ul>
<li><img src="https://i.imgur.com/Mt5Vhdr.png" alt=""></li>
</ul>
</li>
</ul>
</blockquote>
<h1 id="sql-사이트-소개">SQL 사이트 소개</h1>
<blockquote>
<p>[!info] SQL 연습 사이트</p>
<ul>
<li>프로그래머스 <a href="https://www.programmers.co.kr/">https://www.programmers.co.kr/</a></li>
<li>hackerrank <a href="https://www.hackerrank.com/domains/sql">https://www.hackerrank.com/domains/sql</a></li>
<li>SQL zoo <a href="https://sqlzoo.net/">https://sqlzoo.net/</a></li>
<li>Leet Code <a href="https://leetcode.com/">https://leetcode.com/</a></li>
</ul>
</blockquote>
<h1 id="공공데이터-소개">공공데이터 소개</h1>
<blockquote>
<p>[!info] 공공데이터</p>
<ul>
<li>공공데이터 포털 <a href="https://www.data.go.kr/">https://www.data.go.kr/</a></li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] SQL Ch1. SQL 기초 2 (완)]]></title>
            <link>https://velog.io/@joel_lee/TIL-SQL-Ch1.-SQL-%EA%B8%B0%EC%B4%88-2-%EC%99%84</link>
            <guid>https://velog.io/@joel_lee/TIL-SQL-Ch1.-SQL-%EA%B8%B0%EC%B4%88-2-%EC%99%84</guid>
            <pubDate>Thu, 28 Sep 2023 13:02:01 GMT</pubDate>
            <description><![CDATA[<h1 id="sql-사이트-소개">SQL 사이트 소개</h1>
<blockquote>
<p>[!info] SQL 연습 사이트</p>
<ul>
<li>프로그래머스 <a href="https://www.programmers.co.kr/">https://www.programmers.co.kr/</a></li>
<li>hackerrank <a href="https://www.hackerrank.com/domains/sql">https://www.hackerrank.com/domains/sql</a></li>
<li>SQL zoo <a href="https://sqlzoo.net/">https://sqlzoo.net/</a></li>
<li>Leet Code <a href="https://leetcode.com/">https://leetcode.com/</a></li>
</ul>
</blockquote>
<h1 id="공공데이터-소개">공공데이터 소개</h1>
<blockquote>
<p>[!info] 공공데이터</p>
<ul>
<li>공공데이터 포털 <a href="https://www.data.go.kr/">https://www.data.go.kr/</a></li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] SQL Ch1. SQL 기초 1]]></title>
            <link>https://velog.io/@joel_lee/TIL-SQL-Ch1.-SQL-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@joel_lee/TIL-SQL-Ch1.-SQL-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Thu, 28 Sep 2023 08:16:29 GMT</pubDate>
            <description><![CDATA[<h1 id="dbms">DBMS</h1>
<p>#DBMS</p>
<blockquote>
<p>[!info] DBMS</p>
<ul>
<li>DBMS = DataBase Management System<ul>
<li>RDBMS = Relational DBMS : 관계형 데이터베이스. 관계형 모델을 사용.<ul>
<li><img src="https://i.imgur.com/AtxbVIw.png" alt=""></li>
</ul>
</li>
<li>NoSQL - Not only SQL<ul>
<li><img src="https://i.imgur.com/TlQpHF9.png" alt=""></li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
<h1 id="테이블과-모델링">테이블과 모델링</h1>
<p>#Modeling</p>
<blockquote>
<p>[!info] 모델링</p>
<ul>
<li>데이터를 어떤 식으로 그룹화해서 저장할지를 미리 설계하는 과정<ul>
<li><img src="https://i.imgur.com/Mt5Vhdr.png" alt=""></li>
</ul>
</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-27]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-27</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-27</guid>
            <pubDate>Wed, 27 Sep 2023 15:48:43 GMT</pubDate>
            <description><![CDATA[<p>&lt;&lt; [[2023-09-26]] | [[2023-09-28]]&gt;&gt;</p>
<h1 id="2023-09-27">2023-09-27</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>You always have two choices: your commitment versus your fear.
— <cite>Sammy Davis Jr.</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker</p>
<ul>
<li><input disabled="" type="checkbox"> 데일리 리포트</li>
<li><input disabled="" type="checkbox"> 22전략 - 독서</li>
<li><input disabled="" type="checkbox"> 22전략 - 글쓰기</li>
</ul>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Status</th>
<th>Review</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09:00</td>
<td>기상, 데일리 리포트</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10:00</td>
<td>봄이산책</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11:00</td>
<td>봄이산책</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>점심, 데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>14:00</td>
<td>데이터 분석 Master Class, 면담 준비</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>LOA 면담 : 전직, 상병수당, 노트북이나 핸드폰</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>16:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td>저녁</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24:00</td>
<td>데이터 분석 Master Class, 데일리 리포트</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>01:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>02:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned
[[Ch.3 엑셀 데이터 분석]]</p>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
<ul>
<li>데이터 분석 Master Class의 엑셀 끝!</li>
<li>[[2023-09-27 LOA 면담]]</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] Excel Ch3. 엑셀 데이터 분석 (완)
]]></title>
            <link>https://velog.io/@joel_lee/TIL-Excel-Ch3.-%EC%97%91%EC%85%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%99%84</link>
            <guid>https://velog.io/@joel_lee/TIL-Excel-Ch3.-%EC%97%91%EC%85%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%99%84</guid>
            <pubDate>Wed, 27 Sep 2023 15:34:51 GMT</pubDate>
            <description><![CDATA[<p>한 번에 끝냈으니 링크로 대체</p>
<p>텍스트링크 : <a href="https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-T-%EA%B2%80%EC%A0%95-%ED%9A%8C%EA%B7%80-%EA%B5%B0%EC%A7%91-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-4udyx5lh">https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-T-%EA%B2%80%EC%A0%95-%ED%9A%8C%EA%B7%80-%EA%B5%B0%EC%A7%91-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-4udyx5lh</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Excel] Ch3. 엑셀 기초 (T-검정, 회귀, 군집, 대시보드)
]]></title>
            <link>https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-T-%EA%B2%80%EC%A0%95-%ED%9A%8C%EA%B7%80-%EA%B5%B0%EC%A7%91-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-4udyx5lh</link>
            <guid>https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-T-%EA%B2%80%EC%A0%95-%ED%9A%8C%EA%B7%80-%EA%B5%B0%EC%A7%91-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-4udyx5lh</guid>
            <pubDate>Wed, 27 Sep 2023 15:32:06 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>[!abstract] 요약</p>
<ul>
<li>T-test : 2022년, 2023년 매출 데이터</li>
<li>회귀 분석 : 도요타 중고차 데이터</li>
<li>군집 분석 : 백화점 구매정보, 고객정보 데이터</li>
<li>엑셀 대시보드</li>
</ul>
</blockquote>
<blockquote>
<p>[!note] 감상</p>
<ul>
<li>T-test<ul>
<li>통계 검정 2급을 딴 이후에 오랜만에 t 검정을 접했는데 감회가 새롭다.</li>
<li>역시 일본어보단 한국어로 설명을 듣는 게 머리에 쏙 들어오는 듯 싶다.</li>
</ul>
</li>
<li>회귀 분석<ul>
<li>분석을 행하는 데 있어서 다중공선성이 중요.</li>
<li>엑셀에서 더미 데이터를 다루는 법을 처음 알았다</li>
</ul>
</li>
<li>군집 분석<ul>
<li>엑셀의 해 찾기 기능이 새로웟다</li>
</ul>
</li>
<li>대시보드<ul>
<li>Power BI 수업이 기대가 된다.</li>
<li>엑셀은 너무 무거운 듯?</li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<h1 id="데이터-검정">데이터 검정</h1>
<h2 id="t-test">T-test</h2>
<p>#t-test</p>
<blockquote>
<p>[!info] T-test</p>
<ul>
<li>모집단의 표준편차가 알려지지 않았을 때, 정규분포 모집단에서 모은 <strong>샘플의 평균값에 대한 가설검정</strong></li>
<li>==표본 두 집단이 통계적으로 같은지, 다른지 비교==하는 테스트</li>
<li>종류<ul>
<li>대응표본 : 표본 집단 1 개를 특정 값과 비교</li>
<li>대응표본 (쌍체) : 1 개 집단의 실험 전후 비교</li>
<li>독립표본 : 두 표본 집단 비교</li>
</ul>
</li>
<li>양측 검정과 단측 검정</li>
</ul>
</blockquote>
<h1 id="실습--프로모션-효과-분석">실습 : 프로모션 효과 분석</h1>
<h2 id="데이터-탐색-및-전처리">데이터 탐색 및 전처리</h2>
<blockquote>
<p>[!note]</p>
<ul>
<li>매출 상위 20 브랜드<ul>
<li>피벗 테이블 -&gt; 행 레이블 -&gt; 값 필터 -&gt; 상위 10 -&gt; 20 으로 변경</li>
</ul>
</li>
<li>작년과 중복되는 고객 찾아내기<ul>
<li><code>COUNTIF($T$7:$T$3810,P7)</code></li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="t-test-시행-및-검정-결과-분석">T-test 시행 및 검정 결과 분석</h2>
<blockquote>
<p>[!NOTE] T-test</p>
<ul>
<li>t- 검정 : 쌍체 비교</li>
<li>t- 독립표본<ul>
<li>f- 검정 : 분산에 대한 두 집단<ul>
<li>등분산인가, 이분산인가</li>
</ul>
</li>
<li>t- 검정 : 이분산 or 등분산 가정 두 집단</li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<h1 id="회귀-분석">회귀 분석</h1>
<h1 id="실습--자동차-가격-예측">실습 : 자동차 가격 예측</h1>
<h2 id="데이터-소개-및-공선성가변수">데이터 소개 및 공선성/가변수</h2>
<p>#multicollinearity #dummy_variables</p>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li><p>다중 공선성 Multicollinearity</p>
<ul>
<li><img src="https://i.imgur.com/Jov4b1n.png" alt=""></li>
</ul>
</li>
<li><p>가변수 Dummy variables : 숫자가 아닌 변수의 경우</p>
<ul>
<li><img src="https://i.imgur.com/7asQ63Q.png" alt=""></li>
<li>타입이 3 개면 더미는 두 개만 만들어도 됨<ul>
<li><img src="https://i.imgur.com/fGH9uZ5.png" alt=""></li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="데이터-전처리-및-회귀분석-시행">데이터 전처리 및 회귀분석 시행</h2>
<p>#excel/regression</p>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li>데이터 전처리<ul>
<li>상관분석을 통한 공선성이 생길 가능성 확인<ul>
<li>아래의 경우 연식이랑 Diff_First Drive Year 가 많이 겹침</li>
<li><img src="https://i.imgur.com/7kZe6r4.png" alt=""></li>
</ul>
</li>
</ul>
</li>
<li>==회귀분석==<ul>
<li>데이터 -&gt; 데이터 분석 -&gt; 회귀 분석</li>
<li><img src="https://i.imgur.com/pVOI4UG.png" alt=""></li>
<li>MET COLOR 과 DOORS 변수를 제거하고 다시 분석</li>
<li>MSE, RMSE</li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<h1 id="군집-분석">군집 분석</h1>
<h2 id="k-means-clustering-소개">K-means Clustering 소개</h2>
<p>#k-means</p>
<blockquote>
<p>[!NOTE] K-means Clustering</p>
<ul>
<li>Process<ul>
<li><img src="https://i.imgur.com/iVOm7S8.png" alt=""></li>
<li><img src="https://i.imgur.com/2lbUKUZ.png" alt=""></li>
</ul>
</li>
</ul>
</blockquote>
<h1 id="실습--명품-구매고객-분석">실습 : 명품 구매고객 분석</h1>
<h2 id="군집화-시행">군집화 시행</h2>
<blockquote>
<p>[!NOTE] Clustering</p>
<ul>
<li>Tiny Data 화 -&gt; Ref 추가 -&gt; 각 변수의 평균과 표준편차 구하기 -&gt; 표준화</li>
<li>-&gt; 적당한 중심점 설정 -&gt; 군집 나누기 -&gt; 해 찾기 (제한 조건 설정) -&gt; 해법 옵션 설정 -&gt; 해 찾기</li>
</ul>
</blockquote>
<hr>
<h1 id="액셀-대시보드">액셀 대시보드</h1>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li><img src="https://i.imgur.com/kJKTzLC.png" alt=""></li>
<li><img src="https://i.imgur.com/BmzlfBk.png" alt=""></li>
</ul>
</blockquote>
<hr>
<h1 id="실습--리테일-대시보드-제작">실습 : 리테일 대시보드 제작</h1>
<blockquote>
<p>[!NOTE]</p>
<ul>
<li>==슬라이서==<ul>
<li>삽입 -&gt; 슬라이서</li>
<li>세세한 서식까지 지정 가능</li>
<li>열도 수정 가능</li>
<li>보고서 연결 : 다른 피벗 테이블과 슬라이서 공유</li>
</ul>
</li>
<li>그래프 -&gt; 데이터 레이블 추가</li>
<li>카메라 : 테이블 자체는 카메라로</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Excel] Ch2. EDA (Tiny Data, EDA, 쿼리, 상관분석)
]]></title>
            <link>https://velog.io/@joel_lee/Excel-Ch2.-EDA-Tiny-Data-EDA-%EC%BF%BC%EB%A6%AC-%EC%83%81%EA%B4%80%EB%B6%84%EC%84%9D</link>
            <guid>https://velog.io/@joel_lee/Excel-Ch2.-EDA-Tiny-Data-EDA-%EC%BF%BC%EB%A6%AC-%EC%83%81%EA%B4%80%EB%B6%84%EC%84%9D</guid>
            <pubDate>Wed, 27 Sep 2023 05:20:04 GMT</pubDate>
            <description><![CDATA[<h1 id="tiny-data--로우-데이터-관리">Tiny Data : 로우 데이터 관리</h1>
<blockquote>
<p>[!info] Tiny Data 란?</p>
<ul>
<li>데이터 전처리에 걸리는 시간을 최소화하기 위한 표준화 데이터 형태</li>
<li><strong>밑바닥부터 시작할 필요 없는 데이터</strong></li>
</ul>
<blockquote>
<p>[!tip] 필요 조건</p>
<ul>
<li>열에는 개별 변수 1 개</li>
<li>행에는 관측치</li>
<li>각 표는 1 개의 관측기준에 의해 조직</li>
</ul>
</blockquote>
<p><img src="https://i.imgur.com/bz2Ad2W.png" alt=""></p>
</blockquote>
<hr>
<h1 id="탐색적-데이터-분석-exploratory-data-analysis-eda">탐색적 데이터 분석 (Exploratory Data Analysis, EDA)</h1>
<p>#EDA</p>
<blockquote>
<p>[!info] EDA</p>
<ul>
<li>수치 요약과 시각화를 사용하여 데이터를 탐색하고
변수 간 잠재적 관계 (인사이트) 를 찾아내는 프로세스</li>
</ul>
<blockquote>
<p>[!example]</p>
<ul>
<li>데이터 특성 이해</li>
<li>데이터 변동의 패턴 발견</li>
<li>이상치 발견</li>
<li>모델링 전략 수립, 방향 설정</li>
<li>분석 결과의 발견</li>
</ul>
</blockquote>
</blockquote>
<blockquote>
<p>[!quote]</p>
<p>&#39; 잘못된 질문 &#39; 에 대한 &#39; 확실한 답 &#39; 은 결론이 확실할 수 있으나,
때론 ==&#39; 정확한 질문 &#39;==에 대한 &#39; 대략적인 답이 더 낫다 &#39;
- John Tukey, 미국의 수학자이자 컴퓨터 과학자.</p>
</blockquote>
<hr>
<h1 id="실습--세계-인구-데이터-분석">실습 : 세계 인구 데이터 분석</h1>
<h2 id="데이터-소개-및-전처리">데이터 소개 및 전처리</h2>
<p>#excel/query</p>
<blockquote>
<p>[!note] 쿼리를 이용한 Tiny Data 화</p>
<ul>
<li>데이터 -&gt; 테이블/범위에서 -&gt; 쿼리 편집기 -&gt; 변환 -&gt; 열 피벗 해제</li>
</ul>
</blockquote>
<h2 id="데이터-탐색-및-시각화">데이터 탐색 및 시각화</h2>
<p>#excel/graph/combo</p>
<blockquote>
<p>[!note] 시각화</p>
<ul>
<li>콤보 그래프</li>
<li>신장률 계산 수식 복붙 팁<ul>
<li>IF 함수를 이용한 다른 대륙 간 계산 방지</li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<h1 id="실습--미국-도시별-house-price-데이터-분석">실습 : 미국 도시별 House Price 데이터 분석</h1>
<h2 id="데이터-소개-및-탐색">데이터 소개 및 탐색</h2>
<blockquote>
<p>[!note]</p>
<ul>
<li>추세 탐색 : 막대 그래프, 분산 그래프, 박스 그래프</li>
<li>Pivot table 열 그룹화</li>
</ul>
</blockquote>
<h2 id="상관분석-및-시각화">상관분석 및 시각화</h2>
<p>#excel/correlation</p>
<blockquote>
<p>[!note] 상관분석</p>
<ul>
<li>데이터 분석 추가<ul>
<li>파일 -&gt; 옵션 -&gt; 추가기능 -&gt; 분석 도구 팩</li>
</ul>
</li>
<li>셀 배경을 값에 따라 표시<ul>
<li>홈 -&gt; 조건부서식 -&gt; 규칙 관리 -&gt; 새 규칙 -&gt; 셀 값을 기준으로 모든 셀의 서식 지정</li>
</ul>
</li>
</ul>
<blockquote>
<p>[!example] 결과
<img src="https://i.imgur.com/9o03wce.png" alt=""></p>
</blockquote>
</blockquote>
<hr>
<h1 id="실습--온라인-쇼핑몰-데이터-분석">실습 : 온라인 쇼핑몰 데이터 분석</h1>
<h2 id="데이터-소개">데이터 소개</h2>
<h2 id="데이터-탐색-및-전처리">데이터 탐색 및 전처리</h2>
<p>#excel/text #excel/search #excel/isnumber</p>
<blockquote>
<p>[!note]</p>
<ul>
<li>텍스트를 날짜 형식으로 바꾸기<ul>
<li>데이터 -&gt; 텍스트 나누기 -&gt; 3단계 열 데이터 서식 -&gt; 날짜 선택</li>
</ul>
</li>
<li>날짜를 요일로 바꾸기<ul>
<li><img src="https://i.imgur.com/oC6CKBV.png" alt=""></li>
</ul>
</li>
<li>여러 도메인의 주소를 통합하기<ul>
<li><img src="https://i.imgur.com/gA42MBI.png" alt=""></li>
<li><code>IF(ISNUMBER(SEARCH(&quot;google&quot;,K2)),&quot;google&quot;,K2)</code></li>
</ul>
</li>
<li>Pivot 테이블 열 합계 비율로 나타내기<ul>
<li>피벗 테이블 필드 -&gt; 값 -&gt; 값 필드 설정 -&gt; 값 표시 형식 -&gt; 열 합계 비율</li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="장바구니-상관-분석">장바구니 상관 분석</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] Excel Ch2. EDA 2 (완)
]]></title>
            <link>https://velog.io/@joel_lee/TIL-Excel-Ch2.-EDA-2-%EC%99%84</link>
            <guid>https://velog.io/@joel_lee/TIL-Excel-Ch2.-EDA-2-%EC%99%84</guid>
            <pubDate>Wed, 27 Sep 2023 05:17:45 GMT</pubDate>
            <description><![CDATA[<h1 id="실습--온라인-쇼핑몰-데이터-분석">실습 : 온라인 쇼핑몰 데이터 분석</h1>
<h2 id="데이터-소개">데이터 소개</h2>
<h2 id="데이터-탐색-및-전처리">데이터 탐색 및 전처리</h2>
<blockquote>
<p>[!note]</p>
<ul>
<li>텍스트를 날짜 형식으로 바꾸기<ul>
<li>데이터 -&gt; 텍스트 나누기 -&gt; 3단계 열 데이터 서식 -&gt; 날짜 선택</li>
</ul>
</li>
<li>날짜를 요일로 바꾸기<ul>
<li><img src="https://i.imgur.com/oC6CKBV.png" alt=""></li>
</ul>
</li>
<li>여러 도메인의 주소를 통합하기<ul>
<li><img src="https://i.imgur.com/gA42MBI.png" alt=""></li>
<li><code>IF(ISNUMBER(SEARCH(&quot;google&quot;,K2)),&quot;google&quot;,K2)</code></li>
</ul>
</li>
<li>Pivot 테이블 열 합계 비율로 나타내기<ul>
<li>피벗 테이블 필드 -&gt; 값 -&gt; 값 필드 설정 -&gt; 값 표시 형식 -&gt; 열 합계 비율</li>
</ul>
</li>
</ul>
</blockquote>
<h2 id="장바구니-상관-분석">장바구니 상관 분석</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-26]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-26</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-26</guid>
            <pubDate>Tue, 26 Sep 2023 14:10:05 GMT</pubDate>
            <description><![CDATA[<h1 id="2023-09-26">2023-09-26</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>If you owe the bank $100 that&#39;s your problem. If you owe the bank $100 million, that&#39;s the bank&#39;s problem.
— <cite>J. Paul Getty</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker</p>
<ul>
<li>데일리 리포트</li>
<li>22 전략 - 독서</li>
<li>22 전략 - 글쓰기</li>
</ul>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Status</th>
<th>Review</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td>기상, 데일리 리포트</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td>이불 세탁, 데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09:00</td>
<td>데이터 분석 Master Class, 봄이 산책</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10:00</td>
<td>봄이 산책</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11:00</td>
<td>봄이 산책, 점심, 데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td>생각보다 피곤했는지 알람을 맞췄는데도 한 시간 더 자버렸다.</td>
</tr>
<tr>
<td>14:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td>엑셀 Ch1 끝! 블로그 투고도 끝!</td>
</tr>
<tr>
<td>16:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td>데이터 분석 Master Class, 블로그 투고</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td>독서회 준비, 이동</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>독서회</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td>독서회</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td>이동, 저녁</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td>독서회 정리, 데일리 리포트</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td>샤워 후 취침</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>01:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>02:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned</p>
<ul>
<li>독서회<ul>
<li>다음부턴 책 전체의 요점을 간결하게 정리하자</li>
</ul>
</li>
<li>[[Ch.2 탐색적 데이터 분석]]</li>
</ul>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
<ul>
<li>첫 독서회 참가! 다음은 한 달 뒤!</li>
<li>엑셀의 여러 기능을 점점 잘 다룰 수 있게 된 거 같다!</li>
</ul>
</blockquote>
<hr>
<h1 id="오늘의-일기">오늘의 일기</h1>
<blockquote>
<p>[!tip] 독서회</p>
<ul>
<li>다들 좋아하는 책을 가져와 적절히 발표했다.</li>
<li>다음부턴 나도 책의 요점을 간결하고 정확하게 전달하자.</li>
<li>편지 가게나 키타가와 야스시의 다른 책을 읽어보자.</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[독서 모임] 2023-09-26]]></title>
            <link>https://velog.io/@joel_lee/%EB%8F%85%EC%84%9C-%EB%AA%A8%EC%9E%84-2023-09-26</link>
            <guid>https://velog.io/@joel_lee/%EB%8F%85%EC%84%9C-%EB%AA%A8%EC%9E%84-2023-09-26</guid>
            <pubDate>Tue, 26 Sep 2023 13:39:02 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>[!tip] 감상</p>
<ul>
<li>다들 좋아하는 책을 가져와 적절히 발표했다.</li>
<li>다음부턴 나도 책의 요점을 간결하고 정확하게 전달하자.</li>
<li>편지 가게나 키타가와 야스시의 다른 책을 읽어보자.</li>
</ul>
</blockquote>
<blockquote>
<p>[!note] 소개받은 책</p>
<ul>
<li>それは誠<ul>
<li>芥川賞候補作</li>
<li>「ライ麦畑でつかまえて」似の淡々と描いた青春小説</li>
<li>主人公の独特な目線と主観がポイント</li>
</ul>
</li>
<li>日日是好日<ul>
<li>茶道のエッセー集</li>
</ul>
</li>
<li>好きなことで生きる</li>
<li>==手紙屋==<ul>
<li>喜多川泰</li>
<li>手紙屋に手紙を送り、返事をもらう</li>
</ul>
</li>
<li>なぜ僕らは働くのか</li>
<li>変な家</li>
<li>変な絵</li>
<li>プロカウンセラーの共感の技術</li>
</ul>
</blockquote>
<hr>
<h1 id="세컨드-브레인">세컨드 브레인</h1>
<p><img src="https://i.imgur.com/F76UXk0.png" alt=""></p>
<p><img src="https://i.imgur.com/n9b1TvB.png" alt=""></p>
<p><img src="https://i.imgur.com/DuWeTMm.png" alt=""></p>
<p><img src="https://i.imgur.com/fryLfPn.png" alt=""></p>
<p><img src="https://i.imgur.com/3qRVUbz.png" alt=""></p>
<p><img src="https://i.imgur.com/AmV7nR5.png" alt=""></p>
<p><img src="https://i.imgur.com/Qn2Pj7j.png" alt=""></p>
<p><img src="https://i.imgur.com/xoxfsXR.png" alt=""></p>
<p><img src="https://i.imgur.com/noIwl2M.png" alt=""></p>
<p><img src="https://i.imgur.com/q1OXCHu.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] Excel Ch2. EDA 1
]]></title>
            <link>https://velog.io/@joel_lee/TIL-Excel-Ch2.-EDA</link>
            <guid>https://velog.io/@joel_lee/TIL-Excel-Ch2.-EDA</guid>
            <pubDate>Tue, 26 Sep 2023 08:47:15 GMT</pubDate>
            <description><![CDATA[<h1 id="tiny-data--로우-데이터-관리">Tiny Data : 로우 데이터 관리</h1>
<blockquote>
<p>[!info] Tiny Data 란?</p>
<ul>
<li>데이터 전처리에 걸리는 시간을 최소화하기 위한 표준화 데이터 형태</li>
<li><strong>밑바닥부터 시작할 필요 없는 데이터</strong></li>
</ul>
<blockquote>
<p>[!tip] 필요 조건</p>
<ul>
<li>열에는 개별 변수 1 개</li>
<li>행에는 관측치</li>
<li>각 표는 1 개의 관측기준에 의해 조직</li>
</ul>
</blockquote>
<p><img src="https://i.imgur.com/bz2Ad2W.png" alt=""></p>
</blockquote>
<hr>
<h1 id="탐색적-데이터-분석-exploratory-data-analysis-eda">탐색적 데이터 분석 (Exploratory Data Analysis, EDA)</h1>
<p>#EDA</p>
<blockquote>
<p>[!info] EDA</p>
<ul>
<li>수치 요약과 시각화를 사용하여 데이터를 탐색하고
변수 간 잠재적 관계 (인사이트) 를 찾아내는 프로세스</li>
</ul>
<blockquote>
<p>[!example]</p>
<ul>
<li>데이터 특성 이해</li>
<li>데이터 변동의 패턴 발견</li>
<li>이상치 발견</li>
<li>모델링 전략 수립, 방향 설정</li>
<li>분석 결과의 발견</li>
</ul>
</blockquote>
</blockquote>
<blockquote>
<p>[!quote]</p>
<p>&#39; 잘못된 질문 &#39; 에 대한 &#39; 확실한 답 &#39; 은 결론이 확실할 수 있으나,
때론 ==&#39; 정확한 질문 &#39;==에 대한 &#39; 대략적인 답이 더 낫다 &#39;
- John Tukey, 미국의 수학자이자 컴퓨터 과학자.</p>
</blockquote>
<hr>
<h1 id="실습--세계-인구-데이터-분석">실습 : 세계 인구 데이터 분석</h1>
<h2 id="데이터-소개-및-전처리">데이터 소개 및 전처리</h2>
<p>#excel/query</p>
<blockquote>
<p>[!note] 쿼리를 이용한 Tiny Data 화</p>
<ul>
<li>데이터 -&gt; 테이블/범위에서 -&gt; 쿼리 편집기 -&gt; 변환 -&gt; 열 피벗 해제</li>
</ul>
</blockquote>
<h2 id="데이터-탐색-및-시각화">데이터 탐색 및 시각화</h2>
<p>#excel/graph/combo</p>
<blockquote>
<p>[!note] 시각화</p>
<ul>
<li>콤보 그래프</li>
<li>신장률 계산 수식 복붙 팁<ul>
<li>IF 함수를 이용한 다른 대륙 간 계산 방지</li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<h1 id="실습--미국-도시별-house-price-데이터-분석">실습 : 미국 도시별 House Price 데이터 분석</h1>
<h2 id="데이터-소개-및-탐색">데이터 소개 및 탐색</h2>
<blockquote>
<p>[!note]</p>
<ul>
<li>추세 탐색 : 막대 그래프, 분산 그래프, 박스 그래프</li>
<li>Pivot table 열 그룹화</li>
</ul>
</blockquote>
<h2 id="상관분석-및-시각화">상관분석 및 시각화</h2>
<blockquote>
<p>[!note] 상관분석</p>
<ul>
<li>데이터 분석 추가<ul>
<li>파일 -&gt; 옵션 -&gt; 추가기능 -&gt; 분석 도구 팩</li>
</ul>
</li>
<li>셀 배경을 값에 따라 표시<ul>
<li>홈 -&gt; 조건부서식 -&gt; 규칙 관리 -&gt; 새 규칙 -&gt; 셀 값을 기준으로 모든 셀의 서식 지정</li>
</ul>
</li>
</ul>
<blockquote>
<p>[!example] 결과
<img src="https://i.imgur.com/9o03wce.png" alt=""></p>
</blockquote>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[Excel] Ch1. 엑셀 기초 (피벗, 기초 함수, 배열 함수)]]></title>
            <link>https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88</link>
            <guid>https://velog.io/@joel_lee/Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88</guid>
            <pubDate>Tue, 26 Sep 2023 06:41:53 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>[!note] 감상</p>
<ul>
<li>피벗 테이블의 디자인과 필드 추가가 인상깊었다.<ul>
<li>디자인 -&gt; 부분합, 총합계, 보고서 레이아웃</li>
<li>피벗 테이블 분석 -&gt; 필드, 항목 및 집합 -&gt; 계산 필드</li>
</ul>
</li>
<li>함수의 적극적인 활용<ul>
<li>LARGE, SMALL : 매출 증감 순위 찾기</li>
<li>VLOOKUP : 팀이나 브랜드 찾기</li>
</ul>
</li>
<li>배열 함수 #excel/array <ul>
<li><img src="https://i.imgur.com/uw7kqoU.png" alt=""></li>
</ul>
</li>
</ul>
</blockquote>
<hr>
<blockquote>
<p>[!note] 데이터 분석
데이터 분석은 유용한 정보를 발굴하고
결론적인 내용을 알리며
<strong>의사결정을 지원하는 것을 목표로</strong>
데이터를 정리, 변환, 모델링하는 과정</p>
</blockquote>
<blockquote>
<p>[!info] Goal
엑셀로 할 수 있는 <strong>기본적인 업무</strong>부터
최적화된 <strong>분석 방법론</strong>까지 실습을 통해
데이터 분석 역량 강화</p>
</blockquote>
<p>#excel/shortcut</p>
<blockquote>
<p>[!example] 단축키
<img src="https://i.imgur.com/mHE84d5.png" alt=""></p>
</blockquote>
<p>#excel/static</p>
<blockquote>
<p>[!example] 기초 통계량
<img src="https://i.imgur.com/8kLcTEW.png" alt=""></p>
</blockquote>
<p>#excel/text</p>
<blockquote>
<p>[!example] 텍스트 추출
<img src="https://i.imgur.com/Zzl5t8F.png" alt=""></p>
</blockquote>
<p>#excel/sumifs</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/XhTqJW2.png" alt=""></p>
</blockquote>
<p>#excel/vlookup</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/wPpZsFW.png" alt=""></p>
</blockquote>
<p>#excel/array</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/uw7kqoU.png" alt=""></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] Excel Ch1. 엑셀 기초 3 (완)]]></title>
            <link>https://velog.io/@joel_lee/TIL-Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-3-%EC%99%84</link>
            <guid>https://velog.io/@joel_lee/TIL-Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-3-%EC%99%84</guid>
            <pubDate>Tue, 26 Sep 2023 06:39:20 GMT</pubDate>
            <description><![CDATA[<p>#excel/sumifs</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/XhTqJW2.png" alt=""></p>
</blockquote>
<p>#excel/vlookup</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/wPpZsFW.png" alt=""></p>
</blockquote>
<p>#excel/array</p>
<blockquote>
<p>[!example]
<img src="https://i.imgur.com/uw7kqoU.png" alt=""></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[TIL] Excel Ch1. 엑셀 기초 2]]></title>
            <link>https://velog.io/@joel_lee/TIL-Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-2</link>
            <guid>https://velog.io/@joel_lee/TIL-Excel-Ch1.-%EC%97%91%EC%85%80-%EA%B8%B0%EC%B4%88-2</guid>
            <pubDate>Mon, 25 Sep 2023 22:58:03 GMT</pubDate>
            <description><![CDATA[<p>#excel/static</p>
<blockquote>
<p>[!example] 기초 통계량
<img src="https://i.imgur.com/8kLcTEW.png" alt=""></p>
</blockquote>
<p>#excel/text</p>
<blockquote>
<p>[!example] 텍스트 추출
<img src="https://i.imgur.com/Zzl5t8F.png" alt=""></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[데이터 사이언스 100 개 노크 (구조화 데이터 가공편) (중급)]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%82%AC%EC%9D%B4%EC%96%B8%EC%8A%A4-100-%EA%B0%9C-%EB%85%B8%ED%81%AC-%EA%B5%AC%EC%A1%B0%ED%99%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EA%B3%B5%ED%8E%B8-%EC%A4%91%EA%B8%89</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%82%AC%EC%9D%B4%EC%96%B8%EC%8A%A4-100-%EA%B0%9C-%EB%85%B8%ED%81%AC-%EA%B5%AC%EC%A1%B0%ED%99%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EA%B3%B5%ED%8E%B8-%EC%A4%91%EA%B8%89</guid>
            <pubDate>Mon, 25 Sep 2023 22:50:51 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>[!Important]+ Goals
일반사단법인 데이터사이언스 협회가 GitHub 에 공개한 &quot; 데이터 사이언스 100 개 노크 (구조화 데이터 가공편)&quot; 의 문제연습을 하는 코스입니다.
이 코스에서는 애매한 조건, 소트, 집계, 샘플링 등에 대해 배울 수 있습니다.
비즈니스 현장에서의 분석 실무에서는 데이터의 대부분이 구조화 데이터입니다. 구조화 데이터를 자유롭게 가공, 집계하는 스킬을 닦아, 데이터 사이언스의 실전력을 올립시다.</p>
</blockquote>
<blockquote>
<p>[!abstract]+ Curriculum</p>
<ol>
<li>애매한 조건</li>
<li>소트</li>
<li>집계</li>
<li>서브쿼리</li>
<li>샘플링</li>
<li>뺄셈 에러 대응</li>
<li>name identification</li>
<li>데이터 분할</li>
</ol>
</blockquote>
<hr>
<h1 id="애매한-조건">애매한 조건</h1>
<h2 id="전방-조건">전방 조건</h2>
<h3 id="문제-10">문제 10</h3>
<p>#pd/query/str/startswith</p>
<ul>
<li>df_store 에서 store_cd 가 &quot;S14&quot; 로 시작하는 항목만 추출하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_store.query(&quot;store_cd.str.startswith(&#39;S14&#39;)&quot;, engine=&#39;python&#39;).head(10))</code></pre>
<h3 id="문제-13">문제 13</h3>
<h4 id="정규표현">정규표현</h4>
<p>#regular_expression #regex #pd/query/str/contains</p>
<table>
<thead>
<tr>
<th>임의의 한 글자</th>
<th>.</th>
</tr>
</thead>
<tbody><tr>
<td>문자열 선두</td>
<td>^</td>
</tr>
<tr>
<td>문자열 끝</td>
<td>$</td>
</tr>
<tr>
<td>동일문자 반복</td>
<td>* + ?</td>
</tr>
<tr>
<td>범위지정</td>
<td>-</td>
</tr>
<tr>
<td>대괄호에 포함되는 어떤 한 문자에 매치</td>
<td>[]</td>
</tr>
<tr>
<td>대괄호에 포함되는 문자 이외에 매치</td>
<td>[^]</td>
</tr>
</tbody></table>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.query(&quot;status_cd.str.contains(&#39;^[A-F]&#39;, regex=True)&quot;, engine=&#39;python&#39;).head(10))
</code></pre>
<h2 id="후방-조건">후방 조건</h2>
<h3 id="문제-11">문제 11</h3>
<p>#pd/query/str/endswith</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.query(&quot;customer_id.str.endswith(&#39;1&#39;)&quot;, engine=&#39;python&#39;).head(10))</code></pre>
<h3 id="문제-14">문제 14</h3>
<p>#pd/query/str/contains #regex #regular_expression</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.query(&quot;status_cd.str.contains(&#39;[1-9]$&#39;, regex=True)&quot;, engine=&#39;python&#39;).head(10))</code></pre>
<h2 id="부분-조건">부분 조건</h2>
<h3 id="문제-12">문제 12</h3>
<p>#pd/query/str/contains</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_store.query(&quot;address.str.contains(&#39;横浜市&#39;)&quot;, engine=&#39;python&#39;))</code></pre>
<h3 id="문제-15">문제 15</h3>
<p>#pd/query/str/contains</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.query(&quot;status_cd.str.contains(&#39;^[A-F].*[1-9]$&#39;, regex=True)&quot;, engine=&#39;python&#39;).head(10))</code></pre>
<hr>
<h1 id="소트">소트</h1>
<h2 id="순서-바꾸기">순서 바꾸기</h2>
<h3 id="문제-17">문제 17</h3>
<p>#pd/sort</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.sort_values(&#39;birth_day&#39;, ascending=True).head(10))</code></pre>
<h3 id="문제-18">문제 18</h3>
<p>#pd/sort</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_customer.sort_values(&#39;birth_day&#39;, ascending=False).head(10))</code></pre>
<h2 id="순위">순위</h2>
<h3 id="문제-19">문제 19</h3>
<p>#pd/rank #pd/concat #pd/sort</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

# &quot;df_tmp&quot;に処理後のデータを代入してください

df_tmp = pd.concat(
                   [df_receipt[[&#39;customer_id&#39;, &#39;amount&#39;]]
                   , df_receipt[&quot;amount&quot;].rank(method=&#39;min&#39;, ascending=False)
                   ]
                   , axis=1)
# カラム名を指定します。書き換える必要はありません
df_tmp.columns = [&#39;customer_id&#39;, &#39;amount&#39;, &#39;ranking&#39;]
print(df_tmp.sort_values(&#39;ranking&#39;, ascending=True).head(10))</code></pre>
<h3 id="문제-20">문제 20</h3>
<p>#pd/rank #pd/concat #pd/sort</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

# &quot;df_tmp&quot;に処理後のデータを代入してください

df_tmp = pd.concat(
                   [df_receipt[[&#39;customer_id&#39;, &#39;amount&#39;]]
                   , df_receipt[&quot;amount&quot;].rank(method=&#39;first&#39;, ascending=False)
                   ]
                   , axis=1)
# カラム名を指定します。書き換える必要はありません
df_tmp.columns = [&#39;customer_id&#39;, &#39;amount&#39;, &#39;ranking&#39;]
print(df_tmp.sort_values(&#39;ranking&#39;, ascending=True).head(10))</code></pre>
<hr>
<h1 id="집계">집계</h1>
<h2 id="카운트">카운트</h2>
<h3 id="문제-22">문제 22</h3>
<p>#len #pd/unique</p>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(len(pd.unique(df_receipt.customer_id)))</code></pre>
<h2 id="합계">합계</h2>
<h3 id="문제-23">문제 23</h3>
<p>#pd/groupby/agg/sum</p>
<ul>
<li>점포 별 매출액과 매출 수량 총합</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&#39;store_cd&#39;).agg({&#39;amount&#39;:&#39;sum&#39;, &#39;quantity&#39;:&#39;sum&#39;}).reset_index().head())</code></pre>
<h2 id="maxmin">Max/Min</h2>
<h3 id="문제-24">문제 24</h3>
<p>#pd/groupby/agg/max</p>
<ul>
<li>영수증 데이터에서 고객 id 별로 최근 매출 날짜를 계산</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&#39;customer_id&#39;).agg({&#39;sales_ymd&#39;:&#39;max&#39;}).reset_index().head(10))</code></pre>
<h3 id="문제-25">문제 25</h3>
<p>#pd/groupby/agg/min</p>
<ul>
<li>영수증 데이터에서 고객 id 별로 가장 오래된 매출 날짜를 계산</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&#39;customer_id&#39;).agg({&#39;sales_ymd&#39;:&#39;min&#39;}).reset_index().head(10))</code></pre>
<h3 id="문제-26">문제 26</h3>
<p>#pd/groupby/agg</p>
<ul>
<li>한 번 이상 방문한 사람 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

df_tmp = df_receipt.groupby(&#39;customer_id&#39;).agg({&#39;sales_ymd&#39;:[&#39;max&#39;,&#39;min&#39;]}).reset_index()
#  カラム名を指定します。書き換える必要はありません
df_tmp.columns = [&quot;_&quot;.join(pair) for pair in df_tmp.columns]
print(df_tmp.query(&#39;sales_ymd_max != sales_ymd_min&#39;).head(10))</code></pre>
<h2 id="통계량">통계량</h2>
<h3 id="문제-27">문제 27</h3>
<p>#pd/groupby/agg/mean #pd/sort</p>
<ul>
<li>점포 별 매상 평균</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&quot;store_cd&quot;).agg({&quot;amount&quot;:&quot;mean&quot;}).reset_index().sort_values(&quot;amount&quot;, ascending=False).head())</code></pre>
<h3 id="문제-28">문제 28</h3>
<p>#pd/groupby/agg/median #pd/sort</p>
<ul>
<li>점포 별 매상 중앙값</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&quot;store_cd&quot;).agg({&quot;amount&quot;:&quot;median&quot;}).reset_index().sort_values(&quot;amount&quot;, ascending=False).head())</code></pre>
<h3 id="문제-29">문제 29</h3>
<p>#pd/groupby/apply #lambda</p>
<ul>
<li>점포 별 가장 자주 팔린 상품 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(df_receipt.groupby(&#39;store_cd&#39;).product_cd.apply(lambda x: x.mode()).reset_index())</code></pre>
<h3 id="문제-30">문제 30</h3>
<p>#pd/groupby/var #std_var</p>
<ul>
<li>점포 별 매출 표준분산 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(
    df_receipt
    .groupby(&quot;store_cd&quot;)
    .amount.var(ddof=0)
    .reset_index()
    .sort_values(&quot;amount&quot;, ascending=False)
    .head()
    )</code></pre>
<h3 id="문제-31">문제 31</h3>
<p>#pd/groupby/std #pd/std_dev</p>
<ul>
<li>점포 별 매출 표준편차 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(
    df_receipt
    .groupby(&quot;store_cd&quot;).amount
    .std(ddof=0)
    .reset_index()
    .sort_values(&quot;amount&quot;, ascending=False)
    .head()
    )</code></pre>
<h3 id="문제-32">문제 32</h3>
<p>#np/percentile</p>
<ul>
<li>퍼센타일 (백분위수) 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
import numpy as np
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(
    np.percentile(df_receipt.amount, [25,50,75,100])
    )</code></pre>
<h3 id="문제-33">문제 33</h3>
<p>#pd/query #pd/groupby/agg/mean</p>
<ul>
<li>매출 평균이 330 이상인 점포 뽑기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(
    df_receipt.groupby(&quot;store_cd&quot;)
    .agg({&quot;amount&quot;:&#39;mean&#39;})
    .reset_index()
    .query(&quot;amount &gt;= 330&quot;)
    )</code></pre>
<hr>
<h1 id="서브쿼리">서브쿼리</h1>
<h2 id="검색결과로부터의-서브쿼리">검색결과로부터의 서브쿼리</h2>
<h3 id="문제-34">문제 34</h3>
<p>#pd/query</p>
<ul>
<li>회원 별 매출 총액과 그 평균 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

print(
      df_receipt
      .query(&#39;not customer_id.str.startswith(&quot;Z&quot;)&#39;, engine=&#39;python&#39;)
      .groupby(&quot;customer_id&quot;)
      .amount
      .sum()
      .mean()
      )</code></pre>
<h2 id="조건지정에서의-서브쿼리">조건지정에서의 서브쿼리</h2>
<h3 id="문제-35">문제 35</h3>
<p>#pd/query</p>
<ul>
<li>평균 매출액 이상의 회원 구하기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

amount_mean = df_receipt.query(&#39;not customer_id.str.startswith(&quot;Z&quot;)&#39;, engine=&#39;python&#39;).groupby(&quot;customer_id&quot;).amount.sum().mean()
amount_sum = df_receipt.query(&#39;not customer_id.str.startswith(&quot;Z&quot;)&#39;, engine=&#39;python&#39;).groupby(&quot;customer_id&quot;).amount.sum().reset_index()
print(amount_sum[amount_sum.amount &gt;= amount_mean].head(10))</code></pre>
<hr>
<h1 id="샘플링">샘플링</h1>
<h2 id="랜덤">랜덤</h2>
<h3 id="문제-75">문제 75</h3>
<p>#df/sample</p>
<ul>
<li>무작위 샘플링</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

# random_stateを42としてランダムに1%のデータを抽出し, &quot;df_sampleに代入してください&quot;
df_sample = df_customer.sample(frac=0.01, random_state=42)
print(df_sample.head(10))</code></pre>
<h2 id="계층화">계층화</h2>
<h3 id="문제-76">문제 76</h3>
<p>#sample/stratify</p>
<ul>
<li>성별 분포에 따라 계층 추출 후 성별 마다의 고객수를 집계</li>
</ul>
<pre><code class="language-python">import pandas as pd
from sklearn.model_selection import train_test_split
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)


# sklearn.model_selection.train_test_splitを使用して層化を行ってください
_, sample_df_customer = train_test_split(df_customer, test_size=0.1, stratify =df_customer.gender_cd, random_state=42)
print(sample_df_customer.groupby(&quot;gender_cd&quot;).agg({&#39;customer_id&#39; : &#39;count&#39;}))</code></pre>
<hr>
<h1 id="뺄셈-에러-대응">뺄셈 에러 대응</h1>
<h2 id="뺄셈-에러-대응-1">뺄셈 에러 대응</h2>
<h3 id="문제-84">문제 84</h3>
<p>#pd/merge #fillna</p>
<ul>
<li>고객 별 2019 년도 매출액 비율</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

# 1.レシート明細データフレーム（df_receipt）からqueryメソッドにて該当の期間のデータを抽出する
df_tmp_1 = df_receipt.query(&#39;20190101 &lt;= sales_ymd &lt;= 20191231&#39;)
# 2. &quot;１&quot;で抽出したデータを顧客データフレーム（df_customer）に結合する
df_tmp_1 = pd.merge(df_customer[&#39;customer_id&#39;], df_tmp_1[[&#39;customer_id&#39;, &#39;amount&#39;]], how=&#39;left&#39;, on=&#39;customer_id&#39;). \
    groupby(&#39;customer_id&#39;).sum().reset_index().rename(columns={&#39;amount&#39;:&#39;amount_2019&#39;})
# 3. レシート明細データフレーム（df_receipt）を顧客データフレーム（df_customer）に結合する
df_tmp_2 = pd.merge(df_customer[&#39;customer_id&#39;], df_receipt[[&#39;customer_id&#39;, &#39;amount&#39;]], how=&#39;left&#39;, on=&#39;customer_id&#39;). \
    groupby(&#39;customer_id&#39;).sum().reset_index()
# 4. &quot;2&quot;と&quot;3&quot;で得たデータを内部結合する
df_tmp = pd.merge(df_tmp_1, df_tmp_2, how=&#39;inner&#39;, on=&#39;customer_id&#39;)
# 5. &quot;4&quot;の結合時に生じた欠損値を補完する
df_tmp[&#39;amount_2019&#39;] = df_tmp[&#39;amount_2019&#39;].fillna(0)
df_tmp[&#39;amount&#39;] = df_tmp[&#39;amount&#39;].fillna(0)
# 6. 2019の売り上げ金額 / 全期間の売上金額を行い割合をデータフレームに追加する 
df_tmp[&#39;amount_rate&#39;] = df_tmp[&#39;amount_2019&#39;] / df_tmp[&#39;amount&#39;]
# 7. &quot;6&quot;で生じた欠損値を補完する
df_tmp[&#39;amount_rate&#39;] = df_tmp[&#39;amount_rate&#39;].fillna(0)
# 8. queryメソッドにて条件に基づいて取得する
print( df_tmp.query(&#39;amount_rate &gt; 0&#39;).head(10) )
</code></pre>
<hr>
<h1 id="name-identification">Name Identification</h1>
<h2 id="완전일치">완전일치</h2>
<h3 id="문제-87">문제 87</h3>
<p>#pd/merge #pd/sort #pd/drop_duplicates</p>
<ul>
<li>복수 등록된 고객 데이터에서 복수 데이터 삭제 후, 매출액 0 인 고객은 id 번호가 가장 작은 고객만 남기기</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)


#　顧客ごとの売上金額合計を算出する
df_tmp = df_receipt.groupby(&#39;customer_id&#39;).agg({&#39;amount&#39;:&#39;sum&#39;}).reset_index()
# 顧客データフレーム（df_customer）に売上金額合計を追加し、売上金額合計、顧客IDでソートする
df_customer_u = pd.merge(df_customer, df_tmp, how=&#39;left&#39;, on=&#39;customer_id&#39;).sort_values([&#39;amount&#39;, &#39;customer_id&#39;], ascending=[False, True])
# 同一顧客に対しては売上金額合計が最も高いものを残すように削除する
df_customer_u.drop_duplicates(subset=[&#39;customer_name&#39;, &#39;postal_cd&#39;], keep=&#39;first&#39;, inplace=True)

print(&#39;減少数: &#39;, len(df_customer) - len(df_customer_u))</code></pre>
<h2 id="변환-데이터-작성">변환 데이터 작성</h2>
<h3 id="문제-88">문제 88</h3>
<ul>
<li>전 문제의 df_customer_u 를 기반으로 데이터프레임에 통합 ID 를 부여한 df_customer_n 을 작성</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)
df_customer_u = pd.read_csv(&#39;./100knocks-preprocess/87.csv&#39;, index_col=0)

# 顧客データフレーム(df_customer)と名寄顧客データフレーム（df_customer_u）を内部結合する
df_customer_n = pd.merge(df_customer, df_customer_u[[&#39;customer_name&#39;, &#39;postal_cd&#39;, &#39;customer_id&#39;]],
                        how=&#39;inner&#39;, on =[&#39;customer_name&#39;, &#39;postal_cd&#39;])
# カラム名を変更する
df_customer_n.rename(columns={&#39;customer_id_x&#39;:&#39;customer_id&#39;, &#39;customer_id_y&#39;:&#39;integration_id&#39;}, inplace=True)

print(&#39;ID数の差&#39;, len(df_customer_n[&#39;customer_id&#39;].unique()) - len(df_customer_n[&#39;integration_id&#39;].unique()))</code></pre>
<hr>
<h1 id="데이터-분할">데이터 분할</h1>
<h2 id="레코드-데이터">레코드 데이터</h2>
<h3 id="문제-89">문제 89</h3>
<ul>
<li>매출이 있는 고객만 대상으로 훈련 데이터와 검증 데이터 분리</li>
</ul>
<pre><code class="language-python">import pandas as pd
from sklearn.model_selection import train_test_split
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)

#　顧客ごとの売上金額合計を算出します
df_sales= df_receipt.groupby(&#39;customer_id&#39;).agg({&#39;amount&#39;:&#39;sum&#39;}).reset_index()
#  df_salesにある顧客のみを抽出します
df_tmp = pd.merge(df_customer, df_sales[&#39;customer_id&#39;], how=&#39;inner&#39;, on=&#39;customer_id&#39;)
# 8:2の割合でランダムにデータを分割します
df_train, df_test = train_test_split(df_tmp, test_size=0.2, random_state=71)
print(&#39;訓練データ割合: &#39;, len(df_train) / len(df_tmp))
print(&#39;検証データ割合: &#39;, len(df_test) / len(df_tmp))</code></pre>
<h2 id="시계열-데이터">시계열 데이터</h2>
<h3 id="문제-90">문제 90</h3>
<ul>
<li>월별 매출 집계 후 훈련 데이터 생성</li>
</ul>
<pre><code class="language-python">import pandas as pd
# データをcsvファイルから読み込みます。書き換える必要はありません
df_customer = pd.read_csv(&#39;./100knocks-preprocess/customer.csv&#39;)
df_category = pd.read_csv(&#39;./100knocks-preprocess/category.csv&#39;)
df_product = pd.read_csv(&#39;./100knocks-preprocess/product.csv&#39;)
df_receipt =pd.read_csv(&#39;./100knocks-preprocess/receipt.csv&#39;)
df_store = pd.read_csv(&#39;./100knocks-preprocess/store.csv&#39;)
df_geocode = pd.read_csv(&#39;./100knocks-preprocess/geocode.csv&#39;)


df_tmp = df_receipt[[&#39;sales_ymd&#39;, &#39;amount&#39;]].copy()
# 西暦と月のみにし、&quot;sales_ym&quot;に代入します
df_tmp[&#39;sales_ym&#39;] = df_tmp[&#39;sales_ymd&#39;].astype(&#39;str&#39;).str[0:6]
# 月毎の&quot;amount&quot;を算出します
df_tmp = df_tmp.groupby(&#39;sales_ym&#39;).agg({&#39;amount&#39;:&#39;sum&#39;}).reset_index()

#  「train_size, test_size」はデータの長さ, 「slide_window,start_point」はtrainデータの始まりを決定するのに使用します
def split_data(df, train_size, test_size, slide_window, start_point):
    train_start = start_point * slide_window
    test_start = train_start + train_size
    return df[train_start : test_start], df[test_start : test_start + test_size]

df_train_1, df_test_1 = split_data(df_tmp, train_size=12, test_size=6, slide_window=6, start_point=0)
df_train_2, df_test_2 = split_data(df_tmp, train_size=12, test_size=6, slide_window=6, start_point=1)
df_train_3, df_test_3 = split_data(df_tmp, train_size=12, test_size=6, slide_window=6, start_point=2)
print(df_train_3)</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-25]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-25</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-25</guid>
            <pubDate>Mon, 25 Sep 2023 15:10:37 GMT</pubDate>
            <description><![CDATA[<h1 id="2023-09-25">2023-09-25</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>It is difficult to achieve a spirit of genuine cooperation as long as people remain indifferent to the feelings and happiness of others.
— <cite>Dalai Lama</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker
데일리 리포트 :: 2
22 전략 - 독서 :: 2
22 전략 - 글쓰기 :: 2</p>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Status</th>
<th>Review</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09:00</td>
<td>기상, 카츠라역으로 출발</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10:00</td>
<td>봄이 트리밍, 독서(세컨드 브레인)</td>
<td></td>
<td></td>
<td>미스도 최고!</td>
</tr>
<tr>
<td>11:00</td>
<td>봄이 트리밍, 독서(세컨드 브레인), 카드 신청</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>봄이 트리밍, 점심</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13:00</td>
<td>다이소, 드러그 스토어</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>14:00</td>
<td>산책, 귀가</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>PARA 정리 시작 : 일단 프로젝트(이직준비)부터!</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>16:00</td>
<td>이력서 &amp; 직무경력서의 메모화</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td>이력서 &amp; 직무경력서 브러시 업</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td>이력서 &amp; 직무경력서 브러시 업</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>저녁</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td>이력서 &amp; 직무경력서 브러시 업</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td>이력서 &amp; 직무경력서 브러시 업</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td>책 소개 ppt 만들기 (세컨드 브레인)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td>데일리 리포트</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>01:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>02:00</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned</p>
<ul>
<li>[[2_Areas/독서 모임/세컨드 브레인|세컨드 브레인]]</li>
<li>PARA Method를 이용한 [[이직 준비]] 6개 회사 이력서 쓰기</li>
<li>[[Ch.1 엑셀 기초]]</li>
</ul>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
<ul>
<li>6개 회사 분의 이력서와 직무경력서 브러시업 끝!</li>
</ul>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[데일리 리포트] 2023-09-24]]></title>
            <link>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-24-bonhkrna</link>
            <guid>https://velog.io/@joel_lee/%EB%8D%B0%EC%9D%BC%EB%A6%AC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-2023-09-24-bonhkrna</guid>
            <pubDate>Sun, 24 Sep 2023 12:25:33 GMT</pubDate>
            <description><![CDATA[<h1 id="2023-09-24">2023-09-24</h1>
<blockquote>
<p>[!quote]</p>
<blockquote>
<p>To profit from good advice requires more wisdom than to give it.
— <cite>Wilson Mizner</cite></p>
</blockquote>
</blockquote>
<blockquote>
<p>[!tip] Goals</p>
<ul>
<li>22 전략</li>
<li>운동 - 산책</li>
</ul>
</blockquote>
<blockquote>
<p>[!todo]+ Habit Tracker
데일리 리포트
22 전략 - 독서 :: 1
22 전략 - 글쓰기 :: 0</p>
</blockquote>
<hr>
<h2 id="plan-do-see">Plan, Do, See</h2>
<table>
<thead>
<tr>
<th>Time</th>
<th>Plan</th>
<th>Do</th>
<th>Review</th>
<th>Status</th>
</tr>
</thead>
<tbody><tr>
<td>07:00</td>
<td></td>
<td>아침 산책</td>
<td></td>
<td></td>
</tr>
<tr>
<td>08:00</td>
<td>아침 &amp; 데일리 리포트 &amp; 샤워</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>09:00</td>
<td>독서 모임 책 정하고 읽기</td>
<td>세컨드 브레인으로 확정!</td>
<td></td>
<td></td>
</tr>
<tr>
<td>10:00</td>
<td>산책 및 사색</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>11:00</td>
<td>산책 및 사색</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12:00</td>
<td>세컨드 브레인 읽기</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>13:00</td>
<td>점심</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>14:00</td>
<td>낮잠</td>
<td></td>
<td>원래 한 시간만 잘 거였는데 너무 자버렸다</td>
<td></td>
</tr>
<tr>
<td>15:00</td>
<td>낮잠</td>
<td></td>
<td>다음부턴 꼭 알람을 맞춰놓고 자자!</td>
<td></td>
</tr>
<tr>
<td>16:00</td>
<td>낮잠</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>17:00</td>
<td>세컨드 브레인 읽고 블로그 쓰기</td>
<td>1 부 투고 끝!</td>
<td></td>
<td></td>
</tr>
<tr>
<td>18:00</td>
<td>데이터 분석 Master Class</td>
<td></td>
<td>엑셀은 쉬우니까 빠르게 보고 넘기자</td>
<td></td>
</tr>
<tr>
<td>19:00</td>
<td>저녁 산책 &amp; 블로그 정리</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>20:00</td>
<td>저녁 &amp; 데일리 리포트 쓰기</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21:00</td>
<td>독서 및 정리 (세컨드 브레인)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22:00</td>
<td>독서 및 정리 (세컨드 브레인)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23:00</td>
<td>씻고 잘 준비</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
<blockquote>
<p>[!success]+ Today I Learned</p>
<ul>
<li>[[Ch.1 엑셀 기초]] : 엑셀 단축키랑 참조 (상대, 절대, 혼합) 의 사용법.</li>
<li>[[230924 세컨드 브레인 (1) Intro~Chap.1]] : CODE. Capture, Organize, Distill, Express.</li>
</ul>
</blockquote>
<blockquote>
<p>[!note]+ Highlights of the Day</p>
<ul>
<li>블로그 재시작!</li>
<li>한국 여행 일정 정리 끝!</li>
<li>Fast Campus 의 강의 등록 완료<ul>
<li>&quot; 데이터 분석 Master Class&quot;(80 시간)<ul>
<li>SQL, R, Tableau, Redash, Power BI 입문용</li>
</ul>
</li>
<li>&quot; 한 번에 끝내는 데이터 엔지니어링 초격차 패키지 Online.&quot;(120 시간)<ul>
<li>실무 예시 중심의 데이터 엔지니어링 28 개의 기술 스택</li>
</ul>
</li>
</ul>
</li>
<li>봄이 산책</li>
</ul>
</blockquote>
<hr>
<h1 id="오늘의-일기">오늘의 일기</h1>
<blockquote>
<p>[!note] 봄이 아침 산책
어제에 이어 오늘도 봄이는 6시에 일어나서 모두를 깨우기 시작했다. 요즘 와이프가 잠이 부족해서 이대로는 안 되겠다 싶어 어제 아침 산책을 나간 것이 원인일까 싶다. 오늘도 와이프의 수면을 보장하기 위해 조용히 옷을 갈아입고 집을 나섰다.
이제 고작 두 번 한 아침 산책이지만 마주치는 사람들은 정해져 있는 것 같다. 아침잠이 적은 할머니나 중년의 아저씨. 오늘 만난 대부분의 사람들이 어제도 만난 사람들이었다. 데리고 나온 강아지들은 역시 대부분 일본에서 인기가 많은 푸들이나 포메라니안이었다. 포메라니안은 비교적 경계심이 강해 조심스럽게 다가오고 잘 안 놀아 주지만, 푸들은 웬만하면 봄이랑 잘 어울려 논다.
아침 특유의 공기와 한산함, 적막 속에서 가끔 울리는 알람소리가 참 듣기 좋았다.</p>
</blockquote>
<blockquote>
<p>[!note] Fast Campus
구인구직을 알아보니 SQL을 다뤄본 경험을 요구하는 곳이 많아 찾아보고 수강신청! 입문용 강의와 초급편 강의를 두 개 신청했는데 마침 또 쿠폰을 뿌려서 할인이 많이 된 거 같아 기쁘다. 총 200시간에 이르는 강의인데 30만 원도 안 되는 가격이라니.
&quot;데이터 분석 Master Class&quot;는 2주 안에 끝내고, &quot;한 번에 끝내는 데이터 엔지니어링 초격차 패키지 Online&quot;은 3-4주 안에 끝낼 수 있도록 노력하자!</p>
</blockquote>
<blockquote>
<p>[!note] 블로그 재시작
이사 후에 Aidemy의 강좌가 본격적으로 어려워지기 시작하고 슬럼프에 빠지면서 블로그를 안 쓰게 됐었다. 이제부터 다시 시작! 하루 하루를 제대로 기록하자.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>