Skip to content

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

Merged
merged 16 commits into from
Jul 8, 2025

Conversation

pedromfdiogo
Copy link
Contributor

@pedromfdiogo pedromfdiogo commented Jun 13, 2025

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 and support new-style without .format

…_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>
@pedromfdiogo
Copy link
Contributor Author

@simonjayhawkins Hi! Just wanted to check if this PR needs anything else from my side. Thanks in advance for reviewing

@mroeschke
Copy link
Member

Could you add a whatsnew entry in v3.0.0.rst?

@mroeschke mroeschke closed this Jun 30, 2025
@mroeschke mroeschke reopened this Jun 30, 2025
pedromfdiogo and others added 4 commits July 4, 2025 14:21
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>
@pedromfdiogo
Copy link
Contributor Author

pedromfdiogo commented Jul 4, 2025

@mroeschke What do you think of the updates?

pedromfdiogo and others added 2 commits July 5, 2025 23:09
@pedromfdiogo pedromfdiogo force-pushed the feature#49580 branch 2 times, most recently from 9123340 to 4f87711 Compare July 5, 2025 23:51
@pedromfdiogo
Copy link
Contributor Author

I failed 1 test, but I don't know why because it doesn't seem to be related to the changes

@mroeschke mroeschke added this to the 3.0 milestone Jul 8, 2025
@mroeschke mroeschke merged commit d5f97ed into pandas-dev:main Jul 8, 2025
43 of 44 checks passed
@mroeschke
Copy link
Member

Thanks @pedromfdiogo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement IO CSV read_csv, to_csv
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ENH: support new-style float_format string in to_csv
3 participants