python - Shifting order of rows in Dataframe -
i trying make last 2 rows of dataframe df first 2 of dataframe previous first row becoming 3rd row after shift. because added rows [3,0.3232, 0, 0, 2,0.500], [6,0.3232, 0, 0, 2,0.500]. however, these added to end of df , hence become last 2 rows, when want them first two. wondering how this.
df = df.t df[0] = [3,0.3232, 0, 0, 2,0.500] df[1] = [6,0.3232, 0, 0, 2,0.500] df = df.t df = df.reset_index()
you can call reindex , pass new desired order:
in [14]: df = pd.dataframe({'a':['a','b','c']}) df out[14]: 0 1 b 2 c in [16]: df.reindex([1,2,0]) out[16]: 1 b 2 c 0 edit
another method use np.roll note returns np.array have explicitly select columns df overwrite them:
in [30]: df = pd.dataframe({'a':['a','b','c'], 'b':np.arange(3)}) df out[30]: b 0 0 1 b 1 2 c 2 in [42]: df[df.columns] = np.roll(df, shift=-1, axis=0) df out[42]: b 0 b 1 1 c 2 2 0 the axis=0 param seems necessary otherwise column order not preserved:
in [44]: df[df.columns] = np.roll(df, shift=-1) df out[44]: b 0 0 b 1 1 c 2 2
Comments
Post a Comment