Skip to content

to_frame() broken by RangeIndex #13557

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

Closed
gdbaldw opened this issue Jul 4, 2016 · 5 comments
Closed

to_frame() broken by RangeIndex #13557

gdbaldw opened this issue Jul 4, 2016 · 5 comments
Labels
Bug Duplicate Report Duplicate issue or pull request MultiIndex Output-Formatting __repr__ of pandas objects, to_string

Comments

@gdbaldw
Copy link

gdbaldw commented Jul 4, 2016

Code Sample, a copy-pastable example if possible

In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: p = pd.Panel(np.arange(512).reshape((8,8,8)))

In [4]: p.to_frame()
Out[4]: <repr(<pandas.core.frame.DataFrame at 0x7fcd99f25590>) failed: TypeError: data type "major" not understood>

In [5]: p.axes
Out[5]:
[RangeIndex(start=0, stop=8, step=1),
RangeIndex(start=0, stop=8, step=1),
RangeIndex(start=0, stop=8, step=1)]

Issue is similar to Related TypeErrors in multi-indexed DataFrame #12893

Expected Output

Similar to this...

In [6]: p = pd.Panel(np.arange(8).reshape((2,2,2)))

In [7]: p.to_frame()
Out[7]:

             0  1
major minor      
0     0      0  4
      1      1  5
1     0      2  6
      1      3  7

In [8]: p.axes
Out[8]:
[RangeIndex(start=0, stop=2, step=1),
RangeIndex(start=0, stop=2, step=1),
RangeIndex(start=0, stop=2, step=1)]

output of pd.show_versions()

In [9]: pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 2.7.12.candidate.1
python-bits: 64
OS: Linux
OS-release: 4.5.0-2-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.18.0+git114-g6c692ae
nose: 1.3.7
pip: None
setuptools: 20.10.1
Cython: None
numpy: 1.11.1rc1
scipy: 0.17.1
statsmodels: 0.6.1
xarray: None
IPython: 2.4.1
sphinx: None
patsy: 0.4.1
dateutil: 2.4.2
pytz: 2015.7
blosc: None
bottleneck: None
tables: 3.2.2
numexpr: 2.6.0
matplotlib: 1.5.2rc2
openpyxl: 2.3.0
xlrd: 0.9.4
xlwt: 0.7.5
xlsxwriter: None
lxml: 3.6.0
bs4: 4.4.1
html5lib: 0.999
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.8
boto: None
pandas_datareader: None

@sinhrks
Copy link
Member

sinhrks commented Jul 4, 2016

Looks to be a repr issue related to MultiIndex.

# OK for creation
df = pd.Panel(np.arange(8*8*8).reshape((8,8,8))).to_frame()

df.head()
#             0   1    2    3    4    5    6    7
# major minor
# 0     0      0  64  128  192  256  320  384  448
#       1      1  65  129  193  257  321  385  449
#       2      2  66  130  194  258  322  386  450
#       3      3  67  131  195  259  323  387  451
#       4      4  68  132  196  260  324  388  452

df
# TypeError: data type "major" not understood

want to do a PR?

@sinhrks sinhrks added Bug Output-Formatting __repr__ of pandas objects, to_string MultiIndex Multi Dimensional labels Jul 4, 2016
@gdbaldw
Copy link
Author

gdbaldw commented Jul 4, 2016

@sinhrks Thank you for asking. I'm unfamiliar with the Pandas source, and would need some hand holding on tackling this. Note that as an occasional Pandas user, training me up may be an inefficient use of our time. Nevertheless, am willing.

@gdbaldw
Copy link
Author

gdbaldw commented Jul 4, 2016

@sinhrks I suspect its more involved than simply repr, because...

In [8]: df = pd.Panel(np.arange(7*7*7).reshape((7,7,7))).to_frame()

In [9]: df.head()
Out[9]: 
             0   1    2    3    4    5    6
major minor                                
0     0      0  49   98  147  196  245  294
      1      1  50   99  148  197  246  295
      2      2  51  100  149  198  247  296
      3      3  52  101  150  199  248  297
      4      4  53  102  151  200  249  298

In [10]: df
Out[10]: 
              0   1    2    3    4    5    6
major minor                                 
0     0       0  49   98  147  196  245  294
      1       1  50   99  148  197  246  295
      2       2  51  100  149  198  247  296
      3       3  52  101  150  199  248  297
      4       4  53  102  151  200  249  298
      5       5  54  103  152  201  250  299
      6       6  55  104  153  202  251  300
1     0       7  56  105  154  203  252  301
      1       8  57  106  155  204  253  302
      2       9  58  107  156  205  254  303
      3      10  59  108  157  206  255  304
      4      11  60  109  158  207  256  305
      5      12  61  110  159  208  257  306
      6      13  62  111  160  209  258  307
2     0      14  63  112  161  210  259  308
      1      15  64  113  162  211  260  309
      2      16  65  114  163  212  261  310
      3      17  66  115  164  213  262  311
      4      18  67  116  165  214  263  312
      5      19  68  117  166  215  264  313
      6      20  69  118  167  216  265  314
3     0      21  70  119  168  217  266  315
      1      22  71  120  169  218  267  316
      2      23  72  121  170  219  268  317
      3      24  73  122  171  220  269  318
      4      25  74  123  172  221  270  319
      5      26  75  124  173  222  271  320
      6      27  76  125  174  223  272  321
4     0      28  77  126  175  224  273  322
      1      29  78  127  176  225  274  323
      2      30  79  128  177  226  275  324
      3      31  80  129  178  227  276  325
      4      32  81  130  179  228  277  326
      5      33  82  131  180  229  278  327
      6      34  83  132  181  230  279  328
5     0      35  84  133  182  231  280  329
      1      36  85  134  183  232  281  330
      2      37  86  135  184  233  282  331
      3      38  87  136  185  234  283  332
      4      39  88  137  186  235  284  333
      5      40  89  138  187  236  285  334
      6      41  90  139  188  237  286  335
6     0      42  91  140  189  238  287  336
      1      43  92  141  190  239  288  337
      2      44  93  142  191  240  289  338
      3      45  94  143  192  241  290  339
      4      46  95  144  193  242  291  340
      5      47  96  145  194  243  292  341
      6      48  97  146  195  244  293  342

@sinhrks
Copy link
Member

sinhrks commented Jul 4, 2016

Should be related to truncated repr.

p = pd.Panel(np.arange(8).reshape((2, 2, 2)))
p.to_frame()
#              0  1
# major minor
# 0     0      0  4
#       1      1  5
# 1     0      2  6
#       1      3  7

pd.set_option('display.max_rows', 3)
p.to_frame()
# TypeError: data type "major" not understood

@sinhrks
Copy link
Member

sinhrks commented Jul 5, 2016

Found it works on 0.18.1 and latest master (sorry i used older env at first).

Must be the same as #12893. Pls update to 0.18.1 and see the result.

@sinhrks sinhrks closed this as completed Jul 5, 2016
@sinhrks sinhrks added the Duplicate Report Duplicate issue or pull request label Jul 5, 2016
@jorisvandenbossche jorisvandenbossche added this to the No action milestone Jul 5, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Duplicate Report Duplicate issue or pull request MultiIndex Output-Formatting __repr__ of pandas objects, to_string
Projects
None yet
Development

No branches or pull requests

3 participants