반응형

Python 80

[Markdown] Jupyter notebook tab like r markdown(widgets)

주피터 노트북에서 tab 만들기 R 마크다운에서는 tabset으로 내용을 나누어 깔끔하게 만드는 것이 가능했다. 주피터 노트북에서도 widget으로 해당 기능을 구현할 수 있는데, 그 방법을 알아보고자 한다. 최종 Output은 다음과 같다. First, Second 두 개의 Tab을 만들고, 각각에 histogram 이미지를 넣어주었다. 먼저 필요한 Library를 import 한다. ipywidgets의 widgets 가 핵심이다. import matplotlib.pyplot as plt import pandas as pd import ipywidgets as widgets import numpy as np 다음으로, 그래프를 그려 줄 예시 데이터를 만든다. data1 = pd.DataFrame(np..

Python/MarkDown 2021.09.14

[Python pandas] Fill time interval by group :: 비어있는 시간 채우고, group별 직전값으로 NA 채우기

공정 TAG 데이터를 처리하다보면, 데이터가 수집되지 않아, 비어있는 시간을 채워야 하는 경우가 있다. 특히, Group 별로 사이사이 비어있는 시간을 채우는 방법을 설명하고자 한다. 최종 결과는 다음과 같다. DATE에 분 단위로 비어있는 row를 채우고, 그 값은 Group별 직전 시점의 값으로 채운다. 1. Library pandas와 numpy를 불러온다. import pandas as pd import numpy as np 2. Create Data 실습에 사용할 데이터를 만들어준다. 나중에 Group별로 직전값으로 채워주기 위해 A와 B로 이루어진 Group 컬럼과, 값을 나타내는 value, 시간을 나타내는 DATE로 만들었다. data = pd.DataFrame({'Group':['A','..

[Python] matplotlib 으로 pandas data 그래프 그리기 :: multiple plots, Customizing Figure Layouts, scatter, boxplot

최종적으로 다음과 같이 group별로 Scatter 혹은 boxplot의 색상도 다르고, layout이 자유분방한 그래프를 그릴 것이다. 데이터는 numpy와 pandas를 활용하고, scatter와 boxplot은 matplotlib을 활용하며, Layout은 matplotlib의 gridspec를 활용한다. 1. Import Library 위에서 언급했듯, numpy, pandas, matplotlib 등 필요한 라이브러리를 불러온다. import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib import gridspec 2. Create Data Set x와 y, group으로 이루어진 50개의 data..

Python/Plot 2021.06.10

[Python Pandas] pandas table sorting by other table's column

2개의 Pandas DataFrame A, B가 있을 때, B 테이블의 하나의 컬럼을 기준으로 A 테이블을 sorting 하는 방법을 알아보겠다. 예로 다음 두 DataFrame이 있다고 하자. import padnas as pd ## create A table A = pd.DataFrame({'col1' : ['d','b','a','e','c'], 'col2' : [1,6,9,3,6]}) ## create B table B = pd.DataFrame({'standard_col' : ['a','b','c','d','e'], 'col3' : [1,2,3,4,5]}) A table의 'col1' 컬럼과 B table의 'standard_col' 의 요소가 동일하다. 이 때, A table을 B table의 ..

[numpy tutorial] numpy에서 대각선 값 채우기 in python

Python :: fill diagonal in numpy numpy에서 대각선 값을 채우기 위해서는 numpy.fill_diagonal() 를 활용하면 된다. numpy를 np 로 import 하고, 0부터 15로 이루어진 4 by 4 테이블을 생성해 주었다. import numpy as np metrix = np.arange(16).reshape(4,4) 생성된 metrix 결과는 다음과 같다. np.diagonal(metrix) 로 대각선 값이 무엇인지 확인할 수 있다. 대각선 값을 모두 0으로 지정하는 방법은 다음과 같다. np.fill_diagonal(metrix, 0) 모두 한 가지 값이 아니라 각각 다른 값으로도 채워줄 수 있다. 대각선 값을 100, 101, 102, 103 으로 채워보았다..

Python 2021.01.19

[프로그래머스 - Python] 코딩테스트 연습 > 월간 코드 챌린지 시즌1 > 삼각 달팽이 in python

파이썬으로 코딩테스트 연습 :: 프로그래머스 삼각 달팽이 삼각 달팽이 문제 설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 입출력 예 nresult 4 [1,2,9,3,10,8,4,5,6,7] 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] 입출력 예 설명 입출력 예 #1 문제 예시와 같습니다. 입출력 예 #2 ..

[프로그래머스 - Python] 코딩테스트 연습 > 2020 카카오 인턴십 > 키패드 누르기

파이썬으로 코딩테스트 연습하기 :: 프로그래머스 키패드 누르기 in python 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때..

[프로그래머스] 코딩테스트 연습 > 월간 코드 챌린지 시즌1 > 내적 in python

파이썬으로 프로그래머스 풀기 :: 내적 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 abresult [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 입출력 예 설명 입출력 예 #1 a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 #2 a와 b의 내적은 (..

[프로그래머스] 월간 코드 챌린지 시즌1 > 3진법 뒤집기 in python

파이썬으로 프로그래머스 풀기 :: 3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 nresult 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 125 11122 22111 229 따라서 229를 ..

[프로그래머스] 코딩테스트 연습 :: 두 개 뽑아서 더하기 in python

파이썬으로 프로그래머스 풀기 :: 월간 코드 첼린지 시즌1 > 두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbersresult [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 설명 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 =..

반응형