pandas dataframe 에서 for 문 질문이요.
조회수 1233회
안녕하세요 오랜만에 질문 드리네요. 다름이 아니고 다음 그림에서 for문 안에 있는 식을 저렇게 말고 한번더 for문으로 돌릴 수 있을까여?
이중 for문안에서 for문으로 돌면서 새로운 변수들에 저장하고 싶은데 어떻게 할 수 있을까여 ?
ff = []
for i in range(len(score)):
a = score["AMT_IND"][i]*score.iloc[i,5]
b = score["AMT_IND"][i]*score.iloc[i,6]
c = score["AMT_IND"][i]*score.iloc[i,7]
d = score["AMT_IND"][i]*score.iloc[i,8]
e = score["AMT_IND"][i]*score.iloc[i,9]
f = score["AMT_IND"][i]*score.iloc[i,10]
g = score["AMT_IND"][i]*score.iloc[i,11]
h = score["AMT_IND"][i]*score.iloc[i,12]
n = score["OPER_DT"][i]
m = score["ADMD"][i]
k = score["Day"][i]
row = pd.DataFrame([n,m,a,b,c,d,e,f,g,h,k]).T
row.columns = [ "OPER_DT", "ADMD", "LCLS_10_P", "LCLS_20_P", "LCLS_30_P",
"LCLS_40_P", "LCLS_50_P", "LCLS_60_P",
"LCLS_70_P", "LCLS_80_P", "DAY", ]
ff.append(row)
1 답변
-
pandas dataframe 의 각 row 를 이런식으로 for 문으로 돌리면서 계산하면 성능 안나올 거에요.
코드의 의도를 보면,
score
데이터프레임의"AMT_IND"
컬럼에 5번째부터 12번째 컬럼을 곱해서, 각각"LCLS_10_P", ...
등의 컬럼을 만드는 게 핵심이잖아요.for 문이 전혀 필요 없죠.
예를 들어서 5번째 컬럼 이름이
"AAA"
라고 하면,"LCLS_10_P"
컬럼 전체가 다음과 같이 한줄에 만들어져요.score["LCLS_10_P"] = score["AMT_IND"] * score["AAA"]
이렇게 해서
"LCLS_XX_P"
컬럼들을 쭉 다 만들고 필요한 컬럼들만 추려서 쓰면 되겠죠. 컬럼명으로 사용하면 순서는 상관 없을거구요.
댓글 입력