python - 必须使用某种集合调用索引 : assign column name to dataframe

标签 python pandas dataframe

我有 reweightTarget 如下,我想将它转换为 pandas Dataframe。但是,我收到以下错误:

TypeError: Index(...) must be called with a collection of some kind, 't' was passed

如果我删除 columns='t',它工作正常。谁能解释一下这是怎么回事?

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

最佳答案

文档: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

例子:

df3 = DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])

尝试使用:

pd.DataFrame(reweightTarget, columns=['t'])

关于python - 必须使用某种集合调用索引 : assign column name to dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599912/

相关文章:

r - 如何从 df 中对多个列进行子集化,包括 grep match

python - Pandas - 从分类列创建 bool 列

python - 如何使用 scapy 和 python 提取 SSL/TLS 消息?

python - 有没有办法获取存储在 hdf5 文件中的数组切片的 numpy 样式 View ?

python - 无法安装pymesh

python - 创建 pandas DataFrame 时将 'name' 属性添加到行和列名称

python - 根据没有 isin() 的其他 df 的列过滤数据框

python - 如何将python函数编写为返回字典类型的udf

python - 使用 pandas 按列值分组条形图

python - 如何编写 pandas 每次迭代后生成的新列