본문 바로가기

Data handling

[pandas] str으로 나타내진 datetime 을 mean 연산 가능한 형식으로 변환하기

728x90

    from dateutil.parser import parse

    tuple(map(lambda x: int(x), tuple("2015.05.23".split("-"))))

위 코드가 정상 작동한다.
하고 싶은건 “2015.05.23” 이런 str 데이터를 df[“date”].mean()했을 때 딱 평균 시간이 나오게 하는 것이다.

    new_df["dates"] = new_df["dates"].map(
        lambda date: pd.datetime(*tuple(map(lambda x: int(x), date.split("."))))
    )

위 코드를 짜며 배운점

  1. *args 문법을 써준다. tuple이 들어가서 자동으로 pd.datetime()에 맞는 인자로 들어간다.

  2. pd.datetime은 pd.datetime(2020, 6, 25) 이런 식으로 각각 int 인자가 들어간다. 이를 모든 row에 대해서 시행하도록 코드를 작성하였다.

  3. tuple 형태의 인자가 들어가는 함수에 암묵적으로 한 번에 인자를 넣고 싶으면 *를 인자 앞에 붙이자.