-
-
Notifications
You must be signed in to change notification settings - Fork 18.6k
feature #49580: support new-style float_format string in to_csv #61650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
de303c7
to
d7ffede
Compare
…_csv feat(to_csv): support new-style float_format strings using str.format Detect and process new-style format strings (e.g., "{:,.2f}") in the float_format parameter of to_csv. - Check if float_format is a string and matches new-style pattern - Convert it to a callable (e.g., lambda x: float_format.format(x)) - Ensure compatibility with NaN values and mixed data types - Improves formatting output for floats when exporting to CSV Example: df = pd.DataFrame([1234.56789, 9876.54321]) df.to_csv(float_format="{:,.2f}") # now outputs formatted values like 1,234.57 Co-authored-by: Pedro Santos <pedro.filipe.santos@tecnico.ulisboa.pt>
d7ffede
to
1983866
Compare
@simonjayhawkins Hi! Just wanted to check if this PR needs anything else from my side. Thanks in advance for reviewing |
Could you add a whatsnew entry in |
Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
@mroeschke What do you think of the updates? |
…_produces_warning
@@ -84,6 +84,7 @@ Other enhancements | |||
- Support passing a :class:`Iterable[Hashable]` input to :meth:`DataFrame.drop_duplicates` (:issue:`59237`) | |||
- Support reading Stata 102-format (Stata 1) dta files (:issue:`58978`) | |||
- Support reading Stata 110-format (Stata 7) dta files (:issue:`47176`) | |||
- :meth:`DataFrame.to_csv` and :meth:`Series.to_csv` now support Python's new-style format strings (e.g., ``"{:.6f}"``) for the ``float_format`` parameter, in addition to old-style ``%`` format strings and callables. This allows for more flexible and modern formatting of floating point numbers when exporting to CSV. (:issue:`49580`, :issue:`61650`) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- :meth:`DataFrame.to_csv` and :meth:`Series.to_csv` now support Python's new-style format strings (e.g., ``"{:.6f}"``) for the ``float_format`` parameter, in addition to old-style ``%`` format strings and callables. This allows for more flexible and modern formatting of floating point numbers when exporting to CSV. (:issue:`49580`, :issue:`61650`) | |
- :meth:`DataFrame.to_csv` and :meth:`Series.to_csv` now support Python's new-style format strings (e.g., ``"{:.6f}"``) for the ``float_format`` parameter, in addition to old-style ``%`` format strings and callables. This allows for more flexible and modern formatting of floating point numbers when exporting to CSV. (:issue:`49580`) |
Probably only needs reference to the issue. Was there a specific reason to reference this PR?
feat(to_csv): support new-style float_format strings using str.format
Detect and process new-style format strings (e.g., "{:,.2f}") in the float_format parameter of to_csv.
Example:
df = pd.DataFrame([1234.56789, 9876.54321])
df.to_csv(float_format="{:,.2f}") # now outputs formatted values like 1,234.57 and support new-style without .format
doc/source/whatsnew/v3.0.0.rst
file if fixing a bug or adding a new feature.