pandas - how to groupby a Multi Index time series data? -
say generate df below
testdf = pd.dataframe(np.random.randn(4,4),index= pd.date_range("20170101",periods=4),columns =list("abcd")) testdf out[40]: b c d 2017-01-01 0.084624 -0.371352 -1.013843 -1.102199 2017-01-02 0.390855 -0.519623 0.241092 -1.474969 2017-01-03 0.129163 -0.183547 -1.333859 -0.864320 2017-01-04 1.265360 -0.260505 0.633058 -0.077758 i create mulit-index below
index = pd.multiindex.from_arrays([list("abcd"),("one","one","two","two")],names=['letter','number']) testdf.columns = index testdf out[44]: letter b c d number 1 1 2 2 2017-01-01 0.084624 -0.371352 -1.013843 -1.102199 2017-01-02 0.390855 -0.519623 0.241092 -1.474969 2017-01-03 0.129163 -0.183547 -1.333859 -0.864320 2017-01-04 1.265360 -0.260505 0.633058 -0.077758 now how can group number ?
i tried group below.
testdf.groupby('number') which throws error below.
keyerror: 'number'
use groupby parameter axis=1 group columns, define level , add aggregate function sum, mean:
df = testdf.groupby(axis=1, level=1).sum() or:
df = testdf.groupby(axis=1, level='number').sum()
Comments
Post a Comment