Skip to content

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 <[email protected]>
@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
Copy link
Contributor Author

pedromfdiogo commented Jul 4, 2025

@mroeschke What do you think of the updates?

@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