2017-02-11 8 views
1

質問:データフレーム末尾の統計

あり、末尾の統計を計算するための方法で構築されましたか?

背景:

圧延法は、ほぼ完璧なようだが、私はそれが前後ないロールを提供するために取得することができます。私は、デフォルトの列4ではなく、列1の列1:4の平均を計算したいと考えています。

これは少しの操作やループで行うことができます(または、おそらくこのような列1:4を削除するようなことです)。しかし、単純な組み込みのソリューションがあれば素晴らしいでしょう。

現在のコード:

import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.randint(100, 110, size=(5, 10)), 
        columns=list([x for x in range(1, 11)])) 

df 

     1 2 3 4 5 6 7 8 9 10 
0 106 108 104 108 108 109 105 102 106 102 
1 105 106 107 102 100 106 106 100 101 103 
2 103 101 102 100 107 105 106 100 107 105 
3 104 104 107 109 105 106 108 107 109 100 
4 103 100 101 106 101 102 101 100 103 100 

df.rolling(window=4, axis=1).mean() 

    1  2 3  4  5  6  7  8  9  10 
0 NaN NaN NaN 106.5 107.00 107.25 107.5 106.0 105.50 103.75 
1 NaN NaN NaN 105.0 103.75 103.75 103.5 103.0 103.25 102.50 
2 NaN NaN NaN 101.5 102.50 103.50 104.5 104.5 104.50 104.50 
3 NaN NaN NaN 106.0 106.25 106.75 107.0 106.5 107.50 106.00 
4 NaN NaN NaN 102.5 102.00 102.50 102.5 101.0 101.50 101.00 

答えて

1

pandas.DataFrame.shift()は、溶液中に建てシンプルとしての資格がありますか?

window_size = 4 
df.rolling(window=window_size, axis=1).mean().shift(1-window_size, axis=1) 

は与える:

 1  2  3  4  5  6  7 8 9 10 
0 106.00 106.75 107.50 107.25 106.75 105.25 103.50 NaN NaN NaN 
1 104.25 105.75 106.00 107.25 105.75 104.25 104.25 NaN NaN NaN 
2 102.50 102.25 103.75 103.75 105.00 104.00 102.50 NaN NaN NaN 
3 104.00 105.75 105.25 105.25 107.25 106.25 104.75 NaN NaN NaN 
4 107.75 105.50 104.25 102.75 103.00 103.75 105.00 NaN NaN NaN 
+0

おかげスティーブンは、これは素晴らしい作品。私は列を削除したり、列を再インデックスする必要はありません。 – ac2001

関連する問題