How to calculate MOVING AVG in a Pandas DataFrame?
0

How to calculate MOVING AVG in a Pandas DataFrame?

This recipe helps you calculate MOVING AVG in a Pandas DataFrame
In [3]:
## How to calculate MOVING AVG in a Pandas DataFrame
def Kickstarter_Example_95():
    print()
    print(format('How to calculate MOVING AVG in a Pandas DataFrame','*^82'))
    import warnings
    warnings.filterwarnings("ignore")
    # load libraries
    import pandas as pd
    raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks',
                             'Dragoons', 'Dragoons', 'Dragoons', 'Dragoons', 'Scouts',
                             'Scouts', 'Scouts', 'Scouts'],
                'company': ['1st', '1st', '2nd', '2nd', '1st', '1st', '2nd',
                            '2nd','1st', '1st', '2nd', '2nd'],
                'name': ['Miller', 'Jacobson', 'Bali', 'Milner', 'Cooze', 'Jacon',
                         'Ryaner', 'Sone', 'Sloan', 'Piger', 'Riani', 'Ali'],
                'preTestScore': [4, 24, 31, 2, 3, 4, 24, 31, 2, 3, 2, 3],
                'postTestScore': [25, 94, 57, 62, 70, 25, 94, 57, 62, 70, 62, 70]}
    df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'name',
                                           'preTestScore', 'postTestScore'])
    print(); print(df)

    # Calculate Rolling Moving Average with Window of 2
    df1 = df[['preTestScore','postTestScore']].rolling(window=2).mean()
    print(); print(df1)

    df2 = df1.fillna(0)
    print(); print(df2)

Kickstarter_Example_95()
****************How to calculate MOVING AVG in a Pandas DataFrame*****************

      regiment company      name  preTestScore  postTestScore
0   Nighthawks     1st    Miller             4             25
1   Nighthawks     1st  Jacobson            24             94
2   Nighthawks     2nd      Bali            31             57
3   Nighthawks     2nd    Milner             2             62
4     Dragoons     1st     Cooze             3             70
5     Dragoons     1st     Jacon             4             25
6     Dragoons     2nd    Ryaner            24             94
7     Dragoons     2nd      Sone            31             57
8       Scouts     1st     Sloan             2             62
9       Scouts     1st     Piger             3             70
10      Scouts     2nd     Riani             2             62
11      Scouts     2nd       Ali             3             70

    preTestScore  postTestScore
0            NaN            NaN
1           14.0           59.5
2           27.5           75.5
3           16.5           59.5
4            2.5           66.0
5            3.5           47.5
6           14.0           59.5
7           27.5           75.5
8           16.5           59.5
9            2.5           66.0
10           2.5           66.0
11           2.5           66.0

    preTestScore  postTestScore
0            0.0            0.0
1           14.0           59.5
2           27.5           75.5
3           16.5           59.5
4            2.5           66.0
5            3.5           47.5
6           14.0           59.5
7           27.5           75.5
8           16.5           59.5
9            2.5           66.0
10           2.5           66.0
11           2.5           66.0