본문 바로가기

Python

(12)
[Pandas] 데이터프레임 행 선택 조건 쓸일이 생각보다 많은데 자주 까먹는것 같아서 포스팅. 데이터프레임에서 특정 조건을 지정하여 행을 선택하고싶은경우, 예를들어 df['text']에서 길이가 20이상인 경우의 행들만 선택하고 싶은경우엔 이렇게 하자 df[df['text'].map(len) > 20]
[Python] zip! zip 함수 알아두면 유용하게 쓸일이 많다. 여기 동일한 길이를 가진 2개의 리스트가 있다. list_a = [1,2,3,4,5] list_b = ['사과','배','김치','바나나','키위'] list_a와 list_b에서 값을 하나씩 꺼내어 새로운 list에 저장해보자 result_list = list(zip(list_a,list_b)) result_list의 값으로 => [(1,'사과'), (2,'배'), (3,'김치'), (4,'바나나'), (5,'키위')] 가 얻어진다. 각 리스트에서 값을 하나씩 꺼내와 튜플로 짝지어 리스트 형태로 반환한다. 주로 딕셔너리를 만들때 유용하다 result_dict = {} for a,b in zip(list_a,list_b): result_dict[a] = b 이..
[Python] 리스트 내 리스트들 합치기 이중리스트 안에 있는 리스트들을 합쳐 하나의 리스트로 만들어야하는 경우에 sum을 이용하면 간단하게 해결가능하다 예를들어, list_a = [[1,2],[3,4]] 와 같은 이중 리스트를 sum(list_a , [] ) 와 같은 코드를 사용하여 하나의 리스트로 합칠 수 있다. list_a = [[1,2],[3,4]] sum(list_a , [])
[Pandas] Insert 활용하기 기존 데이터프레임에 새로운 열을 추가할 경우 맨 마지막 컬럼으로 추가된다. insert()를 사용하면 추가할 열의 위치,이름,데이터까지 한번에 지정가능하다. df.insert(loc, label, value) # 첫번째 열에 "fisrt column"이란 column name을 가진 [1,2,3,4]의 데이터를 추가한다 # [1,2,3,4] => Series df.insert(0, "fisrt column", [1,2,3,4]
[Pandas] apply 사용 시 index 활용 꿀팁 별거 아닌거 같지만..나름 한참 헤매이다 찾은거라 포스팅 해놓는다. 나는 lambda를 주로 사용하기보다는 좀 더 직관적으로 사용할 수 있는 apply를 애용한다 오늘도 custom함수를 만들어 apply를 하던 중 애로사항이 발생하였는데.. custom함수에서 적용하려는 DataFrame의 index에 접근해야하는데 뭘해도 안되는 경우였다 x.index를 아무리 찍어봐도 DataFrame 전체 index를 반환할뿐이였다 한참 구글링하다가 역시 stack overflow에 모든 답이있음을 다시 한번 느꼈다. name 이라는 메서드를 사용하면 인덱스를 해당 row별 index를 반환할수 있다! def get_index(x): print(x.name) ## row별 index 반환 df.apply(get_i..
[Pandas] Groupby 와 unstack 활용 Groupby와 unstack()을 활용하여 데이터를 핸들링 해보자 타이타닉 데이터에서 성별,생존여부에 따른 나이대의 평균을 groupy를 통해 구하면 아래코드와 같다 df = pd.read_csv('../../Data/titanic_train.csv') df.groupby(['Sex','Survived'])['Age'].mean() 이렇게 groupby한 결과물도 DataFrame이다. 이걸 DataFrame 즉, matrix 형태로 변환시키기 위해 unstack 메서드를 사용한다 new_df = df.groupby(['Sex','Survived'])['Age'].mean().unstack() 이렇게 하면 'Sex' 와 'Survivied'를 index,column으로 가지는 DataFrame을 얻을 ..
[Pandas] map을 활용하여 DataFrame & Series Data Handling map()을 사용하여 데이터프레임과 시리즈의 데이터를 편리하게 핸들링 할 수 있다. * map 함수는? Pythonic Code - map & reduce 네이버 부스트코스 강좌 정리입니다. map Sequence 자료형의 각 element에 동일한 function을 적용 a_list = [1,2,3,4,5] def func_a(x): return x**2 print(list(map(func_a,a_list))).. ds-imh.tistory.com 1. 데이터에 함수를 적용해야할 경우 s1 = pd.Series([1,2,3,4,5,6,7,8]) s1.map(lambda x: x**2) 2. dict를 활용한 매핑 s2 = pd.Series(['M','F','M','M','F','M']) conditio..
[Python] sort와 sorted sort와sorted의 차이점에 대해 알아보자. 1. sort() 기존 리스트를 정렬 반환 값을 가지지 않는다 list_a = [4,3,1,2] list_a.sort() # 반환값 없이 list_a 정렬 print(list_a) # sort에 의해 정렬된 list_a ## sort()는 반환값을 가지지 않으므로 변수에 할당하여도 아무것도 할당되지 않는다 aa = list_a.sort() # None 2. sorted() 기존의 리스트를 유지하면서 정렬된값을 새로 반환 a = [4,2,1,3] print(sorted(a)) # [1,2,3,4] print(a) # [4,2,1,3] # 기존 리스트값은 변경되지 않음 # 변수에 할당 aa = sorted(a) print(aa) # [1,2,3,4] key p..