728x90
반응형

* 본 포스팅은 주피터 노트북에서 진행했다.

 

딕셔너리 객체를 생성한다

person = {'이름':'홍길동','나이':26,'몸무게':87}
person #딕셔너리 객체 만들기

 

컬럼 값 가져오기

person['이름']
person.get('이름')

 

popitem()

person.popitem() #랜덤하게 key와 value를 삭제

clear()

person.clear() #빈객체 만들기
person

 


딕셔너리 객체가 아래의 사진인 상태에서 for문을 통해 key와 value의 값을 어떻게 불러오는지 확인해 보자

 

key = person.keys()
value=person.values()
item=person.items() #key와 value를 tuple로 반환
for i in value:
        print(i)

 

item은 key와 value 둘다 tuple로 반환한다.

for i in item:
        print(i)

 

key를 이용하여 key와 value를 반환하였다.

for key in person:
    print('{} : {}'.format(key, person[key]))

다른 방법도 있다!

for key,value in person.items():
    print('{} : {}'.format(key, person[key]))

 

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북으로 사용했다.

 

import numpy as np
import pandas as pd

arr10 = [[[26, 22, 12, 12, 22], [87, 11, 13, 17, 19], [12, 23, 34, 23, 17]],
         [[26+1, 22+5, 19, 112, 22], [817, 11, 413, 17, 19], [112, 23, 134, 523, 117]],
         [[26+2, 22+6, 111, 132, 22], [87, 101, 130, 17, 19], [12, 23, 64, 23, 117]],
         [[26+3, 22+7, 12, 121, 22], [87, 171, 163, 17, 19], [12, 23, 634, 23, 167]],
         [[26+4, 22+8, 12, 121, 22], [87, 311, 163, 17, 19], [12, 23, 434, 23, 107]]]
print(arr10)

 

형식을 확인한다.

#3차원 배열
npa = np.array(arr10)
np.shape(npa) #3행5열5장있는것

 

 #내가 푼 결과가 이것과 같아야 하므로 확인차 실행한다.

np.sum(arr10,axis=2)

 

def myF1(i):
    sum=0
    for j in i:
        sum+=j
    return sum
def myF(i):
    return list(map(myF1,i))
list(map(myF,arr10))

 

 

자세한 동작과정을 확인해 보기 위해 print문을 적용해 보았다.

 

728x90
반응형
728x90
반응형

 

* 본 포스팅은 주피터 노트북을 사용하였다.

 

person ={'이름':['홍길동','홍말자','김개똥','홍길동','김개똥'],
         '나이':[26, 22 ,12,12,22],
         '몸무게':[87,11,13,17,19],
         'age':[12,23,34,23,17], 
         'sex':['M','F','M','F','M']
        }
person

 

생성된 딕셔너리에 '이름' 키값을 가져와 보자

 

 

person의 나이의 총합 구하기

sum=0
for i in person['나이']:
    sum +=i
print(sum)

 

 

map을 이용하여 2차원 리스트 값 더하기

 

생성된 2차원 리스트에서 나이, 몸무게, age 끼리 더한 결과를 도출해 보자

def myF(i):
    sum=0
    for j in i:
        sum+=j
    return sum
list(map(myF,arr))

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다.

 

딕셔너리를 생성한다.

 

나이 컬럼을 수정한다.

 

없는 키값을 추가해 보자.

 

 

딕셔너리를 다시 생성한다!

데이터 프레임으로 변환한다.

 

describe() 메서드는 다양한 통계량을 요약해준다.

 

성별 기준으로 나이의 총합 구하기

group1 = df['나이'].groupby(df['sex'])

sum()은 합계, mean()은 평균을 뜻한다.

 

위 방법과 다른 표현으로도 나타낼 수 있다.

df['나이'].groupby(df['sex']).agg([
                                    ('총합','sum'),
                                    ('최대','max'),
                                    ('최소','min'),
                                    ('사용자 정의',myFuncAgg),
                                     ('평균','mean')
                                    ])

 

이름으로 그룹화하고 몸무게의 통계치(집계함수/aggregation)을 출력하기

person ={'이름':['홍길동','홍말자','김개똥','홍길동','김개똥'],
         '나이':[26, 22 ,12,12,22],
         '몸무게':[87,11,13,17,19],
         'age':[12,23,34,23,17], 
         'sex':['M','F','M','F','M']
        }
person
df=pd.DataFrame(person)
print(df)

df['몸무게'].groupby(df['이름']).agg([
                                    ('총합','sum'),
                                    ('최대','max'),
                                    ('최소','min'),
                                     ('평균','mean')
                                    ])

 

group으로 그룹화하고 a의 통계치(집계함수/aggregation) 출력하기

df1 = pd.DataFrame(np.random.rand(4,4), columns=list('abcd'))
df1['group'] = [0,0,1,1]
print(df1)

df1.groupby('group').agg({'a':['sum','max'],
                         'b':'mean',
                          'c':'sum',
                          'd':lambda x:x.max()-x.min()
                         })

 

728x90
반응형
728x90
반응형
list1 = [10, 20, 30, 40, 50]
list1 = list(map(lambda x: x*10,list1))
print(list1)

def myFunc(x):
    return x*12
list3= list(map(myFunc,list1)) #list1=[100, 200, 300, 400, 500]
print(list3)

myFunc 함수는 들어오는 값마다 12를 곱해준다. 이것을 map을 이용하여 list1의 값들을 myFunc 함수에 적용한다.

 

def myFuncBool(x):
    return x%8==0
list4 = list(filter(myFuncBool, list1))  #list1=[100, 200, 300, 400, 500]
print(list4)

 

myFunBool 함수는 8의 배수를 반환 한다. 이것을 filter를 이용하여 list1의 값들을 myFunBool 함수에 적용한다.

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 사용하였다.

 

list에 sort()를 이용해보자 sort는 정렬이다!

 

a_list는 [12, 56, 11, 34] 배열을 가지고 있다 sort()를 적용하면

 

 

a_list안에 있던 값들이 오름차순으로 정렬된 것을 확인할 수 있다.

 

여기서 index() 를 이용하면 몇번에 위치하는지 알 수 있는데

오름차순한 a_list에서 11은 0번째에 있으므로 0이 떴고

 

sort를 reverse로 하여 반대로 정렬하고 난 후 11의 값이 3번째에 있다는 것을 알려준다.

 

다음은 insert()를 이용하는데 insert는 몇번째에 어떤 값을 넣을지 지정할 수 있다.

 

 

여기서 pop()를 이용하면 끝에있는 값을 가져온다.

 

 

문제) pop을 이용하여 데이터를 역순으로 정렬하기

a_list = [12, 56, 11, 34]
result=[]
list=len(a_list)
for i in range(0, list):
    result.append(a_list.pop())
print(result)

 

문제) pop 대신 remove를 이용하여 마지막 데이터 삭제하기

a_list = [12, 56, 11, 34]
a_list.remove(a_list[-1])
print(a_list)

 

* 리스트의 내용 갱신하기 -> 각각 10을 곱한 값으로 갱신!

list1 = [10, 20, 30, 40, 50]
i=0
for n in list1:
    list1[i] = n*10
    i=i+1
print(list1)

문제 ) 위의 값을 list comprehension으로 바꿔보기

[i*10 for i in list1]

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 차이는 print문이므로 파이참에 적용하려면 print를 붙여주면 된다!

 

멤버 연산자인 in, not in을 확인해 보자

 

a_list 문자열 생성

 

사진처럼 in 을 이용해 내가 찾고 싶은 값이 있으면 True, 없으면 False를 반환한다.

 

if 문을 이용하여 이 해당 값이 있을 경우 문자열 배열에 삭제하도록 해보자

 

12가 사라진 것을 확인할 수 있다.

 

문제 ) a_list에 있는 값과 b_list에 있는 값들 중 겹치는 값을 출력해보자

[10, 16]이 나오면 되고 방법은 2가지가 있다.

 

1)

result =[]
for i in a_list:
    for j in b_list:
        if(i==j):
            result.append(i)
print(result)

 

2)

c_list=[]
for i in b_list:
    if i in a_list:
        c_list.append(i)
print(c_list)

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다.

 

* list[0] : 0번째 리스트 값 가져오기* list[:3] : 0~2까지 리스트 값가져오기* list[2:] 2번째 부터 끝까지 리스트 값 가져오기

 

 

list()로 묶으면 알아서 슬라이싱 해준다!

 

문제 ) 문자열을 리스트로 변환하고 그 문자열의 갯수가 몇개인지 알기

str22="대한민국의 국민이 되는 요건은 법률로 정한다. 헌법개정안은 국회가 의결한 후 30일 이내에 국민투표에 붙여 국회의원선거권자 과반수의 투표와 투표자 과반수의 찬성을 얻어야 한다."
list1=list(str22)
len(list1)

 

리스트 안에 for문을 이용하여 값을 생성할 수 있다.

 

list[-2]는 뒤에서 2번째를 의미한다.

 

* append와 extend 

 

a_list가 ['a', 'b', 'c', 'd', 'e', 'f'] 인 상태에서 append와 extend를 사용해보자

 

append를 사용하면 [ ]도 생성되지만 extend는 문자열이 추가되었다.

 

* 중복 제거하기

 

a_list의 값이 [12, 56, 11, 'f', 'r', 't', 'f', 'r', 't'] 일때 중복을 제거해보자

distinct=set(a_list)
print(distinct)

* 해당되는 값 삭제

a_list.remove('c') #해당되는 값 삭제
print(a_list)

 

728x90
반응형
728x90
반응형

abs() : 절대값을 반환

min() : 가장 작은 값 반환

max() : 가장 큰 값 반환

abs(-100) #절대값을 반환 #100

min(100, 100, 10, 7, 1000) #7

max(100, 100, 10, 7, 1000) #1000

def div(a,b=2):
    return a/b
div(4)		#2.0

type

eval("100+200+300") #문자열을 수치값과 연산자로 변환하여 계산(평가/evaluation)
#600

#데이터 타입 알려줌
type(123) 	#int

type('123')	#str

type(123.7) 	#float

type([100,200,300]) #list

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 파이참으로 실행해 보려면 이렇게

a란 변수를 추가하고 print(a)를 해줘야 볼 수 있을 것이다!

[ 대문자 소문자 변경 함수 ]

'hello'.upper() #'HELLO'

'HELLOW'.lower() #'hellow'

'hello'.capitalize() #'Hello'

 

[ 문자열 나누기(split), 결합하기(join), 세기(count), 교체하기(replace) ]

red = '안녕하세요,홍길동,바보'
result=red.split(',')
result				# ['안녕하세요', '홍길동', '바보']

#배열에 저장된 문자열을 하나의 문자열로 결합
','.join(result)	# '안녕하세요,홍길동,바보'

s1="aaaa"
s1.count('a')		# 4

s1="aaaabbb"
s1.count('b')		# 3

s1='Long Live the King'
s1.replace('King','홍길동')	# 'Long Live the 홍길동'

s2="X:Y:Z"
s2.split(":")	# ['X', 'Y', 'Z']

[ 문자열 format하기 ]

'I like {1} and {0}'.format('Python','java')
# 'I like java and Python'

'I like {} and {}'.format('Python','java')
# 'I like Python and java'

for i in range(2,15,2):
    print('{0:3d} {1:4d} {2:5d}'.format(i,i*i,i*i*i))
#  2    4     8
#  4   16    64
#  6   36   216
#  8   64   512
# 10  100  1000
# 12  144  1728
# 14  196  2744

print('소수점 두자리 {0:3.2f}'.format(3.141592)) #소수점 두자리 3.14

 

[ 문자열 find(찾기), strip(공백제거)하기 ]

'hobby'.find('o')		# 1

'             hello    '.rstrip() #오른쪽 공백제거
# '             hello'

'             hello    '.lstrip() #왼쪽 공백제거
# 'hello    '

'             hello    '.strip() #공백제거
# 'hello'

728x90
반응형

+ Recent posts