반응형
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 |