Skip to content
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

to_excel() fails if unicode sheet name is used #1828

Closed
lbeltrame opened this issue Aug 30, 2012 · 5 comments

Comments

@lbeltrame
Copy link
Contributor

commented Aug 30, 2012

Like the subject says, the check in DataFrame.to_excel() checks for an instance of str, rather than basestring, hence unicode names skip the if check and are treated like files, which causes an exception later on in the code. Changing isistance() to check for basestring rather than str fixes the issue.

@lbeltrame

This comment has been minimized.

Copy link
Contributor Author

commented Sep 2, 2012

It looks a little more complicated than expected because in py3 isinstance(foo, str) is fine, but not in py2.

@mforelldavis

This comment has been minimized.

Copy link

commented Sep 2, 2012

In py2 basestring is the superclass for str and unicode so you can use it to catch both; in py3 we don't have the basestring or unicode types anymore. I would try this:

try: basestring
except NameError: basestring = str #py3
if isinstance(excel_writer, basestring):
...

@ghost ghost assigned changhiskhan Sep 10, 2012

@changhiskhan

This comment has been minimized.

Copy link
Contributor

commented Sep 11, 2012

2to3 should convert basestring to str though no?

@mforelldavis

This comment has been minimized.

Copy link

commented Sep 11, 2012

Yes, it will, but don't you want this snippet to work regardless of whether it's being run with 2x or 3x?

@wesm

This comment has been minimized.

Copy link
Member

commented Sep 13, 2012

Everything checking out over here on Python 2 and 3. Closing the issue

@wesm wesm closed this Sep 13, 2012

yarikoptic added a commit to neurodebian/pandas that referenced this issue Sep 27, 2012
Merge commit 'v0.8.1-203-g67121af' into debian
* commit 'v0.8.1-203-g67121af': (193 commits)
  BUG: DataFrame column formatting issue in length-truncated column close pandas-dev#1906
  BUG: override min/max in DatetimeIndex to function as expected close pandas-dev#1895
  BUG: DataFrame mixed-type arithmetic column-wise, fix DataFrame.diff upcasting->object bug close pandas-dev#1896
  BUG: treat nobs=1 >= min_periods case in rolling_std/variance as 0 trivially. close pandas-dev#1884
  TST: skip to_file test if URLError occurs on some systems
  VB: resolve test name conflict and update make script
  DOC: minor change to build script to help auto build process
  DOC: fixed extlinks in sphinx conf
  TST: oops import in wrong place
  TST: skip test_console_encode if sys.stdin.encoding is None
  TST: unit test for pandas-dev#1902 and default to csv.QUOTE_MINIMAL
  Make it possible to set quoting for to_csv
  ENH: clean up pandas-dev#1691 changes, rls note
  ENH: add more possible bool values to read_csv pandas-dev#1295
  BUG: fix rolling_max/min for small inputs and large windows. Add a check that the min_period <= window size. Fixes pandas-dev#1897.
  Mention Ubuntu for NeuroDebian repository
  BUG: don't clobber color keyword in Series.plot, close pandas-dev#1890
  DOC: add intersphinx mapping for python library, close pandas-dev#1556
  BUG: fix mixed-integer .ix indexing bugs. closepandas-dev#1799
  BUG: unicode sheet name in to_excel pandas-dev#1828
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.