熊猫未在分配索引的Python3.5.0后添加列

问题描述 投票:0回答:1

我已经尝试过以下语句:

import pandas as pd
df = pd.DataFrame(index=[i for i in range(5)])
df.columns = ["res"+str(i) for i in range(5)]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\pandas\core\generic.py", line 5080, in __setattr__
    return object.__setattr__(self, name, value)
  File "pandas\_libs\properties.pyx", line 69, in pandas._libs.properties.AxisProperty.__set__
  File "C:\Python35\lib\site-packages\pandas\core\generic.py", line 638, in _set_axis
    self._data.set_axis(axis, labels)
  File "C:\Python35\lib\site-packages\pandas\core\internals\managers.py", line 155, in set_axis
    'values have {new} elements'.format(old=old_len, new=new_len))
ValueError: Length mismatch: Expected axis has 0 elements, new values have 5 elements

不了解其原因。如果我有索引,那么为什么不添加该列?

python pandas python-3.5
1个回答
1
投票

我认为问题是首先没有创建列DataFrame,所以如果要分配列名称,它将失败。

解决方案是将参数columns添加到DataFrame构造函数,索引应简化-仅分配range

df = pd.DataFrame(index= range(5), columns=["res"+str(i) for i in range(5)])
print (df)
  res0 res1 res2 res3 res4
0  NaN  NaN  NaN  NaN  NaN
1  NaN  NaN  NaN  NaN  NaN
2  NaN  NaN  NaN  NaN  NaN
3  NaN  NaN  NaN  NaN  NaN
4  NaN  NaN  NaN  NaN  NaN
© www.soinside.com 2019 - 2024. All rights reserved.