I have reweightTarget
as follows and I want to convert it to a pandas Dataframe. However, I got following error:
TypeError: Index(...) must be called with a collection of some kind, 't' was passed
If I remove columns='t'
, it works fine. Can anyone please explain what's going on?
reweightTarget Trading dates 2004-01-31 4.35 2004-02-29 4.46 2004-03-31 4.44 2004-04-30 4.39 2004-05-31 4.50 2004-06-30 4.53 2004-07-31 4.63 2004-08-31 4.58 dtype: float64 pd.DataFrame(reweightTarget, columns='t') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-334-bf438351aaf2> in <module>() ----> 1 pd.DataFrame(reweightTarget, columns='t') C:\Anaconda3\lib\site-packages\pandas\core\frame.py in __init__(self, data, index, columns, dtype, copy) 253 else: 254 mgr = self._init_ndarray(data, index, columns, dtype=dtype, --> 255 copy=copy) 256 elif isinstance(data, (list, types.GeneratorType)): 257 if isinstance(data, types.GeneratorType): C:\Anaconda3\lib\site-packages\pandas\core\frame.py in _init_ndarray(self, values, index, columns, dtype, copy) 421 raise_with_traceback(e) 422 --> 423 index, columns = _get_axes(*values.shape) 424 values = values.T 425 C:\Anaconda3\lib\site-packages\pandas\core\frame.py in _get_axes(N, K, index, columns) 388 columns = _default_index(K) 389 else: --> 390 columns = _ensure_index(columns) 391 return index, columns 392 C:\Anaconda3\lib\site-packages\pandas\indexes\base.py in _ensure_index(index_like, copy) 3407 index_like = copy(index_like) 3408 -> 3409 return Index(index_like) 3410 3411 C:\Anaconda3\lib\site-packages\pandas\indexes\base.py in __new__(cls, data, dtype, copy, name, fastpath, tupleize_cols, **kwargs) 266 **kwargs) 267 elif data is None or lib.isscalar(data): --> 268 cls._scalar_data_error(data) 269 else: 270 if (tupleize_cols and isinstance(data, list) and data and C:\Anaconda3\lib\site-packages\pandas\indexes\base.py in _scalar_data_error(cls, data) 481 raise TypeError('{0}(...) must be called with a collection of some ' 482 'kind, {1} was passed'.format(cls.__name__, --> 483 repr(data))) 484 485 @classmethod TypeError: Index(...) must be called with a collection of some kind, 't' was passed
The most straightforward way to drop a Pandas dataframe index is to use the Pandas . reset_index() method. By default, the method will only reset the index, forcing values from 0 - len(df)-1 as the index. The method will also simply insert the dataframe index into a column in the dataframe.
Method 1: Using rename() function One way of renaming the columns in a Pandas Dataframe is by using the rename() function. This method is quite useful when we need to rename some selected columns because we need to specify information only for the columns which are to be renamed.
Documentation: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html
columns : Index or array-like
Column labels to use for resulting frame. Will default to np.arange(n) if no column labels are provided
Example:
df3 = DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
Try to use:
pd.DataFrame(reweightTarget, columns=['t'])
When you want to set an index
or columns
in data frame you must pass it as a list
, so either:
pd.DataFrame(reweightTarget, columns=['t']) pd.DataFrame(reweightTarget, columns=list('t'))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With