-
-
Notifications
You must be signed in to change notification settings - Fork 18.6k
ENH: support new-style float_format string in to_csv #49580
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
Labels
Comments
take |
pedromfdiogo
added a commit
to pedromfdiogo/pandas
that referenced
this issue
Jun 3, 2025
pedromfdiogo
added a commit
to pedromfdiogo/pandas
that referenced
this issue
Jun 3, 2025
pedromfdiogo
added a commit
to pedromfdiogo/pandas
that referenced
this issue
Jun 3, 2025
…_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
pedromfdiogo
added a commit
to pedromfdiogo/pandas
that referenced
this issue
Jun 3, 2025
…_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 <[email protected]>
pedromfdiogo
added a commit
to pedromfdiogo/pandas
that referenced
this issue
Jun 6, 2025
…_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 <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Feature Type
Adding new functionality to pandas
Changing existing functionality in pandas
Removing existing functionality in pandas
Problem Description
The
float_format
parameter inpd.DataFrame.to_csv
doesn't support modern (i.e. since Python 2.6) format strings yet.The documentation says about the
float_format
parameter:The word "format string" apparently means an old-style %-format string like
"%.6f"
. However, the Python docs tend to use that word for a modern format string like"{:.6f}"
.Out:
Feature Description
pseudo code:
Alternative Solutions
Workaround
Documentation change
Document that:
float_format = "{:.6f}".format
) if one wants to use a modern format string.Additional Context
If this feature is implemented and used, one could get a minor speed-up in Python 3.10 compared to using %-strings (The same speedup is accessible by using the workaround described above.):
Output:
The text was updated successfully, but these errors were encountered: