-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
apply를 이용하지 않을경우
20.12.31 17:00 작성 조회수 125
0
apply를 이용하지 않는경우는 어떻게 하는지 모르겠습니다 밑의 코드처럼 작성하면 되는데 다른 방법이있나요
list1 = []
for i in titanic_df['Name']:
list1.append(len(i))
titanic_df['len_name'] = list1
titanic_df
답변을 작성해보세요.
0
0
thwnsdyd
질문자2020.12.31
제가 따로 공부를 하고싶어서 여쭤봤습니다 apply를 사용하면 코드실행시간이 길어진다고하더라구요 혹시 다른 방법있다면 알려주실수있나했습니다 새해복많이받으시고 감사합니다~
0
권 철민
지식공유자2020.12.31
안녕하십니까,
일단 제가 질문의 맥락을 잘 모르겠습니다.
굳이 apply를 이용하지 않아야 되는 이유가 있어서 그러신건지요?
아님, 해당 로직을 apply를 이용하지 않고 다른 방법으로 풀어보고 싶으신 건지요?
apply를 이용하는 경우는 row단위로 비교적 가공해야할 로직이 좀 복잡할 때 사용합니다. 일반적으로 pandas는 컬럼단위의 연산을 선호합니다(넘파이 기반이라 컬럼 단위 연산이 매우 빠릅니다). 그런데 이렇게 컬럼 단위의 가공이 여의치 않은 경우에 apply를 적용합니다.
apply를 적용하지 않고 가공하는 경우, 위에 적어주신 것 같이 적용하는 방법도 있을 것이고, apply가 어떤 형태로 적용되었느냐에 따라 여러가지 다른 방법도 있을 것입니다.
하지만 적어주신대로 개별 row 단위로 iteration을 하면서 가공된 값을 하나의 collection(여기서는 list)로 저장한 뒤 이를 컬럼 단위로 변환 하는 방법이 일반적인 방법 같아 보입니다.
감사합니다.
답변 3