PeriodIndex construction with Series (for year, quarter) give TypeError · Issue #7701 · pandas-dev/pandas (original) (raw)

In [1]: data = pd.DataFrame({'year':[1959,1959,1959,1959,1960,1960,1960,1960], '
quarter':[1,2,3,4,1,2,3,4]})
In [2]: data
Out[2]:
   quarter  year
0        1  1959
1        2  1959
2        3  1959
3        4  1959
4        1  1960
5        2  1960
6        3  1960
7        4  1960

In [3]: pd.PeriodIndex(year=data.year, quarter=data.quarter)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
...
C:\Anaconda\envs\devel\lib\site-packages\numpy\core\fromnumeric.pyc in repeat(a,
 repeats, axis)
    342     except AttributeError:
    343         return _wrapit(a, 'repeat', repeats, axis)
--> 344     return repeat(repeats, axis)
    345
    346

TypeError: repeat() takes exactly 2 arguments (3 given)

The docstring of PeriodIndex says int or array for the year and quarter keywords, and indeed with arrays it does work:

In [4]: pd.PeriodIndex(year=data.year.values, quarter=data.quarter.values)
Out[4]:
<class 'pandas.tseries.period.PeriodIndex'>
[1959Q1, ..., 1960Q4]
Length: 8, Freq: Q

But it previously also worked for Series (I suppose when it was still a subclass?). So, should we keep the current behaviour or make it also work for Series?
In any case, a very strange error message that should be improved.