Added few rows for second half of the year to the provided input.
Input
Customer Date (YYYYMM) Spend
0 A 2020-01-01 $200.0
1 B 2020-01-01 $400.0
2 A 2020-02-01 $500.0
3 A 2020-03-01 $200.0
4 A 2020-04-01 $700.0
5 B 2020-02-01 $100.0
6 C 2020-01-01 $50.0
7 A 2020-07-01 $2000.0
8 B 2020-08-01 $250.0
9 C 2020-09-01 $40.0
Code
df['Date (YYYYMM)'] = pd.to_datetime(df['Date (YYYYMM)'],
format='%Y%m')
df["Spend"] = df["Spend"].str.replace('\$','', regex=True).astype(float)
df = df.groupby(['Customer', pd.Grouper(key='Date (YYYYMM)',
freq='6M', closed='left')]).sum().reset_index()
df['SpendDiff'] = df.groupby('Customer', as_index=False).Spend.diff()
df['IncDec'] = np.where(df.SpendDiff>=0,'Increase','Decrease')
df['IncDec'] = df.IncDec.mask(df.SpendDiff.isna(), '')
df
## refomatting Date column to YYYYMM and Spend
df['Date (YYYYMM)'] = df['Date (YYYYMM)'].dt.to_period('6M').astype(str).replace('-','', regex=True)
df["Spend"] = df.Spend.astype(str).replace(r'^','$', regex=True)
df
Output
Customer Date (YYYYMM) Spend SpendDiff IncDec
0 A 202006 $1600.0 NaN
1 A 202012 $2000.0 400.0 Increase
2 B 202006 $500.0 NaN
3 B 202012 $250.0 -250.0 Decrease
4 C 202006 $50.0 NaN
5 C 202012 $40.0 -10.0 Decrease