큰 팬더 데이터 프레임이 있습니다. 수천 개의 열과 백만 개의 행이 있습니다. 나는 최대 값과 최소값의 차이를 행별로 계산하려고한다. NaN 값이 많으며 일부 행은 모두 NaN 값입니다 (하지만 여전히 값을 유지하려고합니다!).Python의 큰 데이터 프레임에서 반복되는 코드를 최적화하는 방법
다음 코드를 작성했습니다. 작동하지만 시간이 많이 걸립니다.
totTime = []
for index, row in date.iterrows():
myRow = row.dropna()
if len(myRow):
tt = max(myRow) - min(myRow)
else:
tt = None
totTime.append(tt)
최적화 할 방법이 있습니까? 다음 코드를 시도했지만 모든 NaN 행을 만나면 오류가 발생합니다.
tt = lambda x: max(x.dropna()) - min(x.dropna())
totTime = date.apply(tt, axis=1)
제안 사항을 보내주십시오!
IIUC 당신이 단지 수'date.max (축 = 1) - data.min (축 = 1) ' – EdChum
루프를 사용하고'apply'를 사용하지 말고 내가 제안한 벡터화 된 방법을 검색해야합니다. 대부분의 팬더 연산자는'NaN'을 정상적으로 처리 할 것이므로 조작 전이나 후에 필터링 할 필요가 있습니다 – EdChum