Road to Data Analyst/Python
-
[NumPy] np.ceil(), np.copysign(), np.intersect1d()Road to Data Analyst/Python 2022. 9. 12. 20:06
np.ceil() 소수 형태의 숫자를 해당 소수보다 크고 가장 가까운 정수로 변환시켜준다. import numpy as np z = 7.12354 print(np.ceil(z)) 결과값이 8.0이 나오는 것을 확인 할 수 있다. np.copysign() np.copysign(a, b)일 경우, a에 해당하는 값이 b의 부호를 따른다. a = 8, b = -4일 경우, a = -8로 바뀐다. import numpy as np a = 8 b = -4 print(np.copysign(a, b)) 결과값이 -8.0이 나오는 것을 확인 할 수 있다. Practice How to round away from zero a float array ? (출처: https://github.com/rougier/numpy-1..
-
[pandas] str.slice() & lambda - 데이터셋에서 맨 앞에 있는 화폐단위 삭제 및 float로 변환Road to Data Analyst/Python 2022. 9. 12. 17:22
str.slice() import pandas as pd url = '데이터 가져올 링크' df = pd.read_csv(url, '\t') chipo = df chipo.item_price.str.slice(1).astype(float).head() 데이터에서 금액이 string형태로 되어있을 때가 많을 텐데, 그럴 때 간단하게 화폐단위를 제거하는 방법이 있다. 바로 str.slice()이다. item_price라는 데이터 셋 내의 column/variable/determinants가 있다. 형태는 다음과 같이 생겼다. item_price 맨 앞에 $표시 때문에 다른 계산에 어려움이 있을 때가 있다. 따라서 $표시를 없애야 한다. str.slice(start=값, stop=값, step=값) 위 코드에..
-
[pandas] agg() & sort_values() - 데이터셋에서 가장 많이 팔린 상품 찾기Road to Data Analyst/Python 2022. 9. 12. 16:59
위 그림처럼 pandas에서 데이터를 groupby를 통해 원하는 데이터 셋을 가져온 후, 그 데이터들을 count, mean과 같은 값으로 가공 가능하다. 그 method/function을 하나만 사용하고 싶다면, groupby(['column name #1', 'column name #2']).mean()과 같이 여러개의 method/function를 사용하고 싶다면 groupby(['column name #1', 'column name #2']).agg('mean', 'sum')처럼 사용해야 한다. Practice 이 데이터 셋에서 가장 많이 팔린 (in terms of quantity) 상품(item_name)을 구하려고 한다면, 다음과 같은 데이터 groupby, agg()가 필요하다. impo..
-
[NumPy] Problem setRoad to Data Analyst/Python 2022. 6. 13. 12:32
22. Normalize a 5x5 random matrix (★☆☆) a = np.random.random((5,5)) b = (a - np.mean(a)) / (np.std(a)) print(a) print(b) Normalize (표준화) : X'= (X-μ) / σ - mean값과 standard deviation값은 np.mean(해당 변수) np.std(해당 변수)에 저장 가능하다. # 24. Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆) print(np.dot(np.ones((5,3)), np.ones((3,2)))) - array끼리의 곱을 하고 싶을 때 np.dot() 사용하기 # 25. Given a 1D array..
-
[NumPy] Fancy Indexing 팬시 인덱싱Road to Data Analyst/Python 2022. 6. 13. 09:42
import numpy as np a1 = np.array([1,2,3,4,5]) print(a1) print(a1[0], a1[2]) ind = [0,2] print(a1[ind]) #한번에 묶어서 ind = np.array([[0,1], [2,0]]) print(a1[ind]) #1차원 배역이지만, 2차원 인덱스에 영향을 받아 2차원으로 결과 출력 1. print(a1[0], a1[2])와 같이 특정 위치를 지정하여 값을 받을 수 있다. 2. 또는 ind = [0, 2]와 같이 한번에 묶어서 값을 받을 수 있다. 3. 위에서도 주석으로 남겨 두었듯이 인덱스가 2차원 배열처럼 값을 알고자 하는 배열과 다른 차원일 때 : 인덱스의 영향을 받아 인덱스 배열 차원으로 변경된다. (여기서는 인덱스 배열 : 2..
-
[Project Euler] Q7. 10001st primeRoad to Data Analyst/Python 2022. 6. 13. 09:18
Q7 : By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13. What is the 10001st prime number? 구해야 할것 - prime number들을 구별해주는 부분 - prime number를 찾으면 count하여 10001번째까지 세주는 조건 코드 i = 0 n = 3 count = 1 check = 0 while True: for i in range(2, n): if n % i == 0: check = 1 break if check == 0: count += 1 if count == 10001: print(n) break n += 1 check = 0 (1)..
-
[Project Euler] Q6. Sum square differenceRoad to Data Analyst/Python 2022. 6. 8. 08:53
Q6 : Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum. 구해야 할 것 - 반복문을 통한 각 숫자의 (1~100) 제곱의 합, 1~100을 더한 값의 제곱 코드 add = 0 sq = 0 for n in range(1,101): add += n**2 sq += n print(sq**2 - add)
-
[Project Euler] Q5. Smallest multipleRoad to Data Analyst/Python 2022. 6. 6. 09:37
Q5 : 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? 처음 아이디어 - 조건문을 통한 1~20 나머지 (%)가 0인 숫자 찾기 (1~20에서 소수만 조건문에 포함시키면 될 것 같다.) - 반복문을 통한 숫자 계속 증가 (20부터), 조건문에 맞는 값 나오면 탈출 그 다음 아이디어 - 파이썬에 있는 math함수를 활용하여, 1~20사이에 있는 모든 수의 최소공배수를 구하면 될 것 같다는 생..