인프런 커뮤니티 질문&답변

오레이달리님의 프로필 이미지
오레이달리

작성한 질문수

파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1

4.1 '값'을 기준으로 grouping하기 - part1

에러해결방법

작성

·

1.7K

0

아래 for in 구문을 돌리는데 이런 경고가 나옵니다.

 퍼포먼스를 높이면서 이런 경고문을 안 나오게 하려면 

어떤 방식으로 짜는 게 좋을까요? 

for indicator in tqdm(indicators_Value):
df_팩터정규화[f"{indicator}_Yield"] = df_팩터정규화[indicator] / df_팩터정규화["시가총액"]

| 0/238 [00:00<?, ?it/s]<ipython-input-2-9bd50d5ff602>:64: PerformanceWarning: DataFrame is highly fragmented.  This is usually the result of calling `frame.insert` many times, which has poor performance.  Consider joining all columns at once using pd.concat(axis=1) instead.  To get a de-fragmented frame, use `newframe = frame.copy()`

  df_팩터정규화[f"{indicator}_Yield"] = df_팩터정규화[indicator] / df_팩터정규화["시가총액"]

 

 

답변 1

1

DeepingSauce님의 프로필 이미지
DeepingSauce
지식공유자

안녕하세요!

 

cols = ["indicator1", "indicator2", "indicator3"]

new_cols = [f"{col}_yield" for col in cols]

df.loc[:, new_cols] = df.loc[df[cols].divide(df["시가총액"], axis=0)

 

요런식으로하면 벡터연산 딱 한번에 다 처리 가능할 것 같습니다 : )

오레이달리님의 프로필 이미지
오레이달리

작성한 질문수

질문하기