안녕하세요. 이번 시간에는, Dataframe의 columns와 index를 어떻게 긁어오는지 알아보도록 하겠습니다. 저번에 했던 도시와 인구가 들어있는 데이터를 그대로 가져와 보도록 하겠습니다. 먼저, df와 df.columns와 df.index를 print 하고자 합니다. 어떻게 나올까요? columns는 City와 Population이고, index는 S, B, I, D, D 순서대로 있습니다. 결과를 보겠습니다. 마지막에서 2번째 줄을 보시면 City하고 Population이 나왔음을 볼 수 있는데요. 제가 컬럼 값으로 설정한 것들입니다. 그리고, 맨 아랫 줄을 보시면, 'S', 'B', 'I', 'D', 'D'가 있는데요. 이는 1번째 행부터 5번째 행까지 labeling이 된 값을 의미합니다...
전체 글 검색 결과
제가 개최한 코테 문제 중에서는, 시각 처리 문제가 있었습니다. 생각보다 많이 쓰일 법 하니 알아두면 좋을 듯 해요. 특정 날짜로부터 1일 전, 1달 전, 1년 전, 1년 후의 날짜를 구해야 합니다. 어떻게 해야 할까요? YYYY-MM-DD로 표현되는 date를 어떻게 연산하는지 알아봅시다. mysql에 있는 DATE_ADD와 DATE_SUB를 알아볼 건데요. 첫 번째 인자에는 date가 들어갑니다. 두 번째 기간에는 INTERVAL이 들어가는데요. 예제를 보도록 하겠습니다. 위 예제는 2004-02-29부터 1 YEAR만큼 지난 날짜를 출력합니다. 뭔가 이상하게 나오는데요. 365일을 기준으로 해서 그런 건지는 아리송 하네요. 윤년이 낀 경우는 조심해야 합니다. 1 DAY만큼 지난 날짜를 출력하려면, ..
이번 시간에은 파이썬 divmod 메서드에 대해 알아봅시다. x와 y를 받으면 x를 y로 나눈 몫과, 나머지가 들어있는 tuple을 리턴하게 됩니다. 튜플은 for in으로 순회 가능합니다. 이를 이용해서 여러가지 작업을 해 보도록 하겠습니다. 이걸 어디에 써 먹을 수 있을까요? 7을 3으로 나눈 몫과 나머지를 구해야 한다고 생각해 봅시다. 저는 처음에 이런 식으로 썼었습니다. 7 // 3과 7 % 3을 썼었습니다. 7 / 3을 쓰지 않았음에 주의하세요. 7 / 3의 결과는 7을 3으로 나눈 몫인 2가 아닌 2.333..이 나오게 됩니다. 결과는 2 1이 나옵니다. 문제는 저렇게 쓰기가 귀찮다는 것입니다. 이런 귀찮음을 해결하기 위해, divmod를 쓴다는 것을 최근에야 알게 되었습니다. 이 메서드의 리..
multithreading을 공부하시다 보면, GIL에 대해 한 번 정도는 들어보시게 됩니다. Global Interpreter Lock의 줄임말입니다. 그런데 이것이 있으면 Lock이 필요 없을까요? 관련 질문을 봐도, 답은 한결같이 아닐 수도 있다는 것이였습니다. [관련글] 원자성을 만족하는 연산을 n번 호출하는 연산은 원자적일까요? 이 문서를 읽어 보시면, 각각의 byte code가 어쩌고 저쩌고 언급을 하다가 atomic 하다는 언급을 하고 있어요. 아래 예제를 보도록 하겠습니다. foo는 global 변수 x에 diff를 100번 더합니다. main 부분을 보겠습니다. diff가 1, -1, 1, -1이 들어감을 알 수 있어요. 18번째 줄에 target이 foo 메서드이고, args가 li의 ..
어느덧 500번째 글입니다. 그냥 정보글은 시시하니, 대회 검수 썰을 풀어보도록 하겠습니다. SUAPC를 검수하면서 신경을 썼던 것 중 하나는, 대회에 출제된 20940번 문제였습니다. 대회에 출제된 문제 중에 난이도가 높은 그룹에 속할 것이라고 예상했고, 실제로 그렇게 되었습니다. 이 문제를 검수할 때 세웠던 원칙 중 하나는 브루트 포스로 검증을 해 볼만한 사이즈가 되면, 검증을 해 보자는 것이였습니다. 100만이면 모르겠지만, 50만이면 해 볼 만 했습니다. 잘 돌리면 1시간 정도에 해결을 할 수 있었기 때문입니다. 이 문제의 초기 조건은 N은 [1, 50만], K는 10^9+7이였습니다. 브루트 포스로 돌릴 만 합니다. 그런데, 이걸 그냥 브루트 포스로 돌리기에는? N이 대충 50만. 50만의 제곱..
최근댓글