print_hundredths
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
round_vs._format [2023/02/08 16:26] – raju | round_vs._format [2023/02/13 23:07] – raju | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== round vs. format ==== | + | ===== round vs. format |
+ | ==== write simple data ==== | ||
< | < | ||
$ ipython | $ ipython | ||
Line 32: | Line 33: | ||
* The output of round is a floating point number. The output of format is a string | * The output of round is a floating point number. The output of format is a string | ||
* To output dollars and pennies, format expression is better than rounding as it always gives the same number of digits after the decimal point. | * To output dollars and pennies, format expression is better than rounding as it always gives the same number of digits after the decimal point. | ||
+ | |||
+ | ==== Write data into csv files ==== | ||
+ | Create some sample data | ||
+ | < | ||
+ | $ ipython | ||
+ | Python 3.10.9 | packaged by conda-forge | (main, Jan 11 2023, 15:15:40) [MSC v.1916 64 bit (AMD64)] | ||
+ | IPython 8.8.0 -- An enhanced Interactive Python. Type '?' | ||
+ | |||
+ | In [1]: | ||
+ | import pandas as pd | ||
+ | df = pd.DataFrame({' | ||
+ | df | ||
+ | Out[1]: | ||
+ | symbol | ||
+ | 0 A 8.222 6.601 | ||
+ | 1 B 7.007 7.241 | ||
+ | 2 C 3.971 -9.341 | ||
+ | 3 D 9.801 48.001 | ||
+ | </ | ||
+ | |||
+ | If you round and dump the data to a file, it does not align around the decimal point | ||
+ | < | ||
+ | In [2]: | ||
+ | df.round({' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ cat ~/ | ||
+ | symbol, | ||
+ | A,8.22,6.6 | ||
+ | B,7.01,7.24 | ||
+ | C, | ||
+ | D,9.8,48.0 | ||
+ | |||
+ | $ cat ~/ | ||
+ | symbol | ||
+ | A 8.22 6.6 | ||
+ | B 7.01 7.24 | ||
+ | C 3.97 -9.34 | ||
+ | D | ||
+ | </ | ||
+ | |||
+ | But if we format the data, it can be aligned easily | ||
+ | < | ||
+ | In [3]: | ||
+ | formats = {' | ||
+ | df2 = df.copy() | ||
+ | for col, f in formats.items(): | ||
+ | df2[col] = df2[col].apply(lambda x: f.format(x)) | ||
+ | df2.to_csv(' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | $ cat ~/ | ||
+ | symbol, | ||
+ | A,8.22,6.60 | ||
+ | B,7.01,7.24 | ||
+ | C, | ||
+ | D, | ||
+ | |||
+ | $ cat ~/ | ||
+ | symbol | ||
+ | A 8.22 6.60 | ||
+ | B 7.01 7.24 | ||
+ | C 3.97 -9.34 | ||
+ | D 9.80 48.00 | ||
+ | </ | ||
+ | |||
+ | Ref:- https:// | ||
+ | |||
+ | tags | print two digits after decimal, float_format by column | ||
print_hundredths.txt · Last modified: 2023/02/14 23:26 by raju