Rounding entries in a Pandas DafaFrame
numpy, pandas, python
Solution
Just use `numpy.round`, e.g.:
100 * np.round(newdf3.pivot_table(rows=['Quradate'], aggfunc=np.mean), 2)
As long as round is appropriate for all column types, this works on a `DataFrame`.
With some data:
In [9]: dfrm
Out[9]:
A B C
0 -1.312700 0.760710 1.044006
1 -0.792521 -0.076913 0.087334
2 -0.557738 0.982031 1.365357
3 1.013947 0.345896 -0.356652
4 1.278278 -0.195477 0.550492
5 0.116599 -0.670163 -1.290245
6 -1.808143 -0.818014 0.713614
7 0.233726 0.634349 0.561103
8 2.344671 -2.331232 -0.759296
9 -1.658047 1.756503 -0.996620
In [10]: 100*np.round(dfrm, 2)
Out[10]:
A B C
0 -131 76 104
1 -79 -8 9
2 -56 98 137
3 101 35 -36
4 128 -20 55
5 12 -67 -129
6 -181 -82 71
7 23 63 56
8 234 -233 -76
9 -166 176 -100
Problem
Using : ``` newdf3.pivot_table(rows=['Quradate'],aggfunc=np.mean) ``` which yields: ``` Alabama_exp Credit_exp Inventory_exp National_exp Price_exp Sales_exp Quradate 2010-01-15 0.568003 0.404481 0.488601 0.483097 0.431211 0.570755 2010-04-15 0.543620 0.385417 0.455078 0.468750 0.408203 0.564453 ``` I'd like to get the decimal numbers rounded to two digit and multiplied by 100 eg .568003 should be 57 been fiddling with it for a while to no avail; tried this ``` newdf3.pivot_table(rows=['Quradate'],aggfunc=np.mean).apply(round(2)) #and got: TypeError: ("'float' object is not callable", u'occurred at index Alabama_exp') ``` Tried a number of other approaches to no avail most complain about the item not being a float... I see that the Pandas series object has a round method but DF does not I tried using df.apply but it complained about the float issue.