dataframe에 appy 수 롤링 팬더, 주어진 날짜에 대한나는과 같이 조작하고 싶다고, 야후 주식 데이터를
import pandas as pd
import pandas.io.data as web
data = web.DataReader('SPY','yahoo')
data.head()
Out[13]:
Open High Low Close Volume Adj Close
Date
2010-01-04 112.37 113.39 111.51 113.33 118944600 103.44
2010-01-05 113.26 113.68 112.85 113.63 111579900 103.71
2010-01-06 113.52 113.99 113.43 113.71 116074400 103.79
2010-01-07 113.50 114.33 113.18 114.19 131091100 104.23
2010-01-08 113.89 114.62 113.66 114.57 126402800 104.57
, 나는 앞으로 이일을보고 가장 낮은 견적을 찾을 싶습니다 그것을 위해. 따라서 2010-1-4 년 동안 정답은 112.85입니다.
이제 for 루프를 사용하여 모든 날짜를 반복하고 원하는 것을 얻을 수 있습니다. 그러나 나는 이것을 벡터화 된 방식으로 할 수 있는지 알고 싶습니다. 아마도 rolling_apply 람다 함수를 사용하면 될 것입니다. 이 ...
def foo(x):
today = x[0]
forward = x[1:]
return (forward.min())
pd.rolling_apply(data,2,foo)
rolling_apply이 시리즈에서 작동하며 데이터 프레임의 다른 컬럼에 액세스 할 수 없기 때문에이 작동하지 않는 내가 지금까지 한 일이다.
이 방법이 조금 깔끔한가요?
'pd.rolling_apply (data [ 'Low'], 2, min)'원하는 것은 무엇입니까? – EdChum
예. 내 문제를 해결합니다. 감사합니다. – nitin
답변으로 게시해야합니까? – EdChum