압 의미에서 판에 특정한 열

나는 데이터를 프레임이에서 수입되는 CSV.

              stock  pop
Date
2016-01-04  325.316   82
2016-01-11  320.036   83
2016-01-18  299.169   79
2016-01-25  296.579   84
2016-02-01  295.334   82
2016-02-08  309.777   81
2016-02-15  317.397   75
2016-02-22  328.005   80
2016-02-29  315.504   81
2016-03-07  328.802   81
2016-03-14  339.559   86
2016-03-21  352.160   82
2016-03-28  348.773   84
2016-04-04  346.482   83
2016-04-11  346.980   80
2016-04-18  357.140   75
2016-04-25  357.439   77
2016-05-02  356.443   78
2016-05-09  365.158   78
2016-05-16  352.160   72
2016-05-23  344.540   74
2016-05-30  354.998   81
2016-06-06  347.428   77
2016-06-13  341.053   78
2016-06-20  363.515   80
2016-06-27  349.669   80
2016-07-04  371.583   82
2016-07-11  358.335   81
2016-07-18  362.021   79
2016-07-25  368.844   77
...             ...  ...

내가 원하는 새 열을 추가하 MA 계산하는 압연 의미에 대한 열 팝이다. 나가려고 다음

df['MA']=data.rolling(5,on='pop').mean()

오류가 발생

ValueError: Wrong number of items passed 2, placement implies 1

그래서 저는 생각을 내려다보면 그냥 작동 추가하지 않고 열입니다. 내가 사용하는

 data.rolling(5,on='pop').mean()

               stock  pop
Date
2016-01-04       NaN   82
2016-01-11       NaN   83
2016-01-18       NaN   79
2016-01-25       NaN   84
2016-02-01  307.2868   82
2016-02-08  304.1790   81
2016-02-15  303.6512   75
2016-02-22  309.4184   80
2016-02-29  313.2034   81
2016-03-07  319.8970   81
2016-03-14  325.8534   86
2016-03-21  332.8060   82
2016-03-28  336.9596   84
2016-04-04  343.1552   83
2016-04-11  346.7908   80
2016-04-18  350.3070   75
2016-04-25  351.3628   77
2016-05-02  352.8968   78
2016-05-09  356.6320   78
2016-05-16  357.6680   72
2016-05-23  355.1480   74
2016-05-30  354.6598   81
2016-06-06  352.8568   77
2016-06-13  348.0358   78
2016-06-20  350.3068   80
2016-06-27  351.3326   80
2016-07-04  354.6496   82
2016-07-11  356.8310   81
2016-07-18  361.0246   79
2016-07-25  362.0904   77
...              ...  ...

수't 에 적용되는 것 같아 보이는 것 압연 의미에서 열 팝이다. 무엇이 잘못된 것입니까?

질문에 대한 의견 (7)
해결책

을 할당을 열을 만들 수 있습니다,회전체 기반의시리즈:

df['new_col'] = data['column'].rolling(5).mean()

답 게시 ac2001 되지 않은 가장 성능이 좋은 방법이 있습니다. 그는 계산링을 의미 모든 열에 대한 데이터 프레임,그는 할당"ma"열을 사용하면"pop"열입니다. 의 첫 번째 방법은 다음과 같은 훨씬 더 많은 효율적인:

%timeit df['ma'] = data['pop'].rolling(5).mean()
%timeit df['ma_2'] = data.rolling(5).mean()['pop']

1000 loops, best of 3: 497 µs per loop
100 loops, best of 3: 2.6 ms per loop

내가 권하고 싶지 않을 사용하여 두 번째 방법은 당신이 필요하지 않는 한 저장소 계산 회전단에서 다른 모든 열이 있습니다.

해설 (0)

편집:pd.rolling_mean에서는 더 이상 사용되지 않으며 맥스와 마르타의 관계가 발전하려고 제거됩니다. 대신 사용하는pd.압너는 할 수 있습니다:

df['MA'] = df['pop'].rolling(window=5,center=False).mean()

에 대한 데이터 프레임df:

          Date    stock  pop
0   2016-01-04  325.316   82
1   2016-01-11  320.036   83
2   2016-01-18  299.169   79
3   2016-01-25  296.579   84
4   2016-02-01  295.334   82
5   2016-02-08  309.777   81
6   2016-02-15  317.397   75
7   2016-02-22  328.005   80
8   2016-02-29  315.504   81
9   2016-03-07  328.802   81

을 얻을:

          Date    stock  pop    MA
0   2016-01-04  325.316   82   NaN
1   2016-01-11  320.036   83   NaN
2   2016-01-18  299.169   79   NaN
3   2016-01-25  296.579   84   NaN
4   2016-02-01  295.334   82  82.0
5   2016-02-08  309.777   81  81.8
6   2016-02-15  317.397   75  80.2
7   2016-02-22  328.005   80  80.4
8   2016-02-29  315.504   81  79.8
9   2016-03-07  328.802   81  79.6

문서:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html

Old:지만 그것은 사용되지 않음을 사용할 수 있습니다.

df['MA']=pd.rolling_mean(df['pop'], window=5)

을 얻을:

          Date    stock  pop    MA
0   2016-01-04  325.316   82   NaN
1   2016-01-11  320.036   83   NaN
2   2016-01-18  299.169   79   NaN
3   2016-01-25  296.579   84   NaN
4   2016-02-01  295.334   82  82.0
5   2016-02-08  309.777   81  81.8
6   2016-02-15  317.397   75  80.2
7   2016-02-22  328.005   80  80.4
8   2016-02-29  315.504   81  79.8
9   2016-03-07  328.802   81  79.6

문서:http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.rolling_mean.html

해설 (2)

이 솔루션은 나를 위해 일했습니다.

data['MA'] = data.rolling(5).mean()['pop']

나는 생각한 문제가 될 수 있는지에='pop'은 변화에 열을 수행하는 회전에서 창 인덱스입니다.

에서 문자열:"를 위한 데이터 프레임이,열 계산 회전 창보다는,인덱스"

해설 (1)