Pandas
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 Pandas Numpy 사용법[편집]
# -*- coding: utf-8 -*-
# ********************************************
# -- numpy : 배열 구조 및 연산
# ********************************************
import numpy as np
# -- 난수를 통한 배열 생성
data = np.random.randn(2,3)
print(data)
print("-"*100) # ---------------------------
# -- 리스트를 통한 배열 생성
data1 = [6,7,5,8,0,1]
print(data1)
arr1 = np.array(data1)
print(arr1)
# -- 2차원 리스트를 통한 배열 생성
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print(arr2)
print("-"*100) # ---------------------------
# -- array 구조 출력
print(arr2.shape)
# -- 0으로 채워진 배열 생성
print(np.zeros((2,3)))
# -- 순번으로 채워진 배열 생성
print(np.arange(15))
print("-"*100) # ---------------------------
# -- 다차원 배열 생성 및 계산
arr = np.array([[1,2,3],[4,5,6]])
print(arr)
print(arr+arr)
print(arr*arr)
print("-"*100) # ---------------------------
# ********************************************
# -- n차 배열
# ********************************************
# -- 다차원 배열 생성 및 조회
arr2d = np.array([[11,12,13],[14,15,16],[17,18,19]])
print(arr2d)
print(arr2d[1])
print(arr2d[1][2])
print(arr2d[:2, 1:])
print("-"*100) # ---------------------------
# ********************************************
# -- 불리언 색인(Boolean Index)
# ********************************************
names = np.array(["Bob", "Joe", "Will", "Bob", "Will", "Joe", "Joe"])
data = np.random.randn(7,4)
print(names)
print(data)
# -- 조건에 맞는지 boolean 리턴
print(names == "Bob")
print("-"*100) # ---------------------------
# -- 두 배열을 조합한 조회
print(data[names=="Bob"]) # Bob이 있는 행
print(data[names=="Bob",0]) # Bob이 있는 행의 0번째 열
print("-"*100) # ---------------------------
# -- 배열의 OR 조건 Boolean 조회
mask = (names=="Bob") | (names=="Will")
print(mask)
# -- 조건에 따라 배열 값 변경 조회
data[data<0] = 0
print(data)
data[names!="Joe"] = 7
print(data)
print("-"*100) # ---------------------------
# ********************************************
# -- 피벗팅 및 배열 재조합
# ********************************************
# -- 피벗팅
arr = np.arange(15).reshape((3,5))
print(arr)
print(arr.T)
print("-"*100) # ---------------------------
# -- 재조합
aaa = np.arange(16)
print aaa
arr = np.arange(16).reshape(2,2,4)
print(arr)
# -- 피벗팅
arr2 = arr.swapaxes(1,2)
print arr2
# ********************************************
# -- 배열 조회 조건 및 집계
# ********************************************
arr = np.random.randn(4,4)
print(arr)
print(np.where(arr>0,1,-1))
print(arr)
print("-"*100) # ---------------------------
# -- where를 이용한 조건 조회
print(np.where((00, arr<10), 3, -3))
print(np.where((0
2 For 문을 사용한 List,Dictionary 출력[편집]
import pandas as pd
# ------------------------------
# -- 리스트의 index, value 출력
# ------------------------------
lst = ["AAA", "BBB", "", "DDD"]
for index in range(len(lst)):
print(index, lst[index])
print("... 리스트 index, value 출력[range(len()) 사용]", "." * 100, "\n")
for idx, val in enumerate(lst):
print(idx, val)
print("... 리스트 index, value 출력[enumerate() 사용]", "." * 100, "\n")
for index in lst:
print(index)
print("... 리스트 출력", "." * 100, "\n")
# ------------------------------
# -- list-in-list에서의 중복제거
# ------------------------------
oldlist = [['a', 'b', 'a'], ['a', 'p', 'f', 'b'], ['b', 's', 'r']]
newlist = list()
for sublist in oldlist:
for list in sublist:
if list not in newlist:
newlist.append(list)
print(newlist)
print(",,, list in list 중복제거", "," * 100, "\n")
# ------------------------------
# -- 사전의 key, value 출력
# ------------------------------
d = {"apple": 100, "orange": 200, "banana": 300}
for key, value in d.items():
print(key, value)
print(";;; 사전 key, value 출력[items() 사용]", ";" * 100, "\n")
# ------------------------------
# -- 데이터프레임의 index, value 출력
# ------------------------------
inp = [{'c1': 10, 'c2': 100}, {'c1': 11, 'c2': 110}, {'c1': 12, 'c2': 120}]
df = pd.DataFrame(inp)
print(df, '\n')
print("^^^ df 원본 출력", "^" * 100, "\n")
for idx, row in df.iterrows():
print("idx=", idx, " c1=", row['c1'], " c2=", row['c2']) # row[0] 형식 가능
print("^^^ DF index, column 출력[iterrows() 사용]", "^" * 100, "\n")
for idx in df.index:
print("idx=", idx)
print("^^^ DF index 출력[df.index 사용]", "^" * 100, "\n")
for row in range(0, len(df)):
print("row=", row)