Data Handling/Pandas

apply를 사용하면서 multi column(여러 열)을 한번에 추가하려면

아네스 2021. 1. 23. 03:28
반응형
def count_mi_1(x):
    minus=0
    zero = 0
    plus =0
    for val in x.loc['quality_0':'quality_12']:
        if val < 0:
            minus+=1
        if val == 0:
            zero +=1
        if val >0:
            plus+=1
#     x.loc['minus_count']=minus
#     x.loc['zero_count'] = zero
#     x.loc['plus_count'] = plus
    x['minus_count'],x['zero_count'],x['plus_count'] = minus, zero, plus
    return x
qual_df =qual_df.apply(lambda x : count_mi_1(x),axis=1)

처음엔 quality_0 ~ quality_12까지의 음수값만 찾고싶었는데, 0도 세보고, 양수값도 세보고 싶어졌다

물런 각각의 함수를 따로 만들고 각각 apply해주면 되긴하다. 그러나 열단위로 들어가는데, 한번에 처리해주면 좋겠다 싶었다. 당연히 시간도 절약될거고

 

특히나 저 qual_df은 150만 * 19? 정도의 크기이기 때문에 한번 연산에 굉장히 오래걸린다.

지금도 몇분 걸리고 있는것 같은데.. 한참.. 걸려서 중간에 캐싱해놔야겠다

 

지금 대회 진행중이라 많은 자료 못올리지만 판다스 사용법은 계속 배우고있는중이라 업데이트가 될 수 있을 것 같다.

반응형

'Data Handling > Pandas' 카테고리의 다른 글

특정 컬럼명을 변경하려면  (0) 2021.07.16
[Pandas]read_csv UnicodeDecodeError  (0) 2020.12.26
[Pandas] Join/Merge  (0) 2020.12.26