행위

Pandas

DB CAFE

Dbcafe (토론 | 기여)님의 2020년 3월 15일 (일) 01:24 판
thumb_up 추천메뉴 바로가기


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)