• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

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

답변 3

·

답변을 작성해보세요.

0

아, 그러셨군요.  새해 복많이 받으시고, 내년에도 건승하시기를 기원드립니다.

0

thwnsdyd님의 프로필

thwnsdyd

질문자

2020.12.31

제가 따로 공부를 하고싶어서 여쭤봤습니다 apply를 사용하면 코드실행시간이 길어진다고하더라구요 혹시 다른 방법있다면 알려주실수있나했습니다 새해복많이받으시고 감사합니다~

0

안녕하십니까,

일단 제가 질문의 맥락을 잘 모르겠습니다.

굳이 apply를 이용하지 않아야 되는 이유가 있어서 그러신건지요?

아님, 해당 로직을 apply를 이용하지 않고 다른 방법으로 풀어보고 싶으신 건지요?

apply를 이용하는 경우는 row단위로 비교적 가공해야할 로직이 좀 복잡할 때 사용합니다. 일반적으로 pandas는 컬럼단위의 연산을 선호합니다(넘파이 기반이라 컬럼 단위 연산이 매우 빠릅니다). 그런데 이렇게 컬럼 단위의 가공이 여의치 않은 경우에 apply를 적용합니다.

apply를 적용하지 않고 가공하는 경우, 위에 적어주신 것 같이 적용하는 방법도 있을 것이고, apply가 어떤 형태로 적용되었느냐에 따라 여러가지 다른 방법도 있을 것입니다.

하지만 적어주신대로 개별 row 단위로 iteration을 하면서 가공된 값을 하나의 collection(여기서는 list)로 저장한 뒤 이를 컬럼 단위로 변환 하는 방법이 일반적인 방법 같아 보입니다.

감사합니다.