为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas 未在索引分配 Python3.5.0 后添加列

Pandas 未在索引分配 Python3.5.0 后添加列

桃花长相依 2022-07-26 16:00:15
我尝试了以下陈述:import pandas as pddf = 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不明白这是什么原因。如果我有索引,那么为什么没有添加该列?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

我认为问题首先是没有创建列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

如果想在只有索引的 DataFrame 之后分配,可以使用DataFrame.reindex:


df = pd.DataFrame(index=range(5))

df = df.reindex(["res"+str(i) for i in range(5)], axis=1)

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


查看完整回答
反对 回复 2022-07-26
?
LEATH

TA贡献1936条经验 获得超6个赞

import pandas as pd

df = pd.DataFrame(index= range(5))

for i in range(5):

  df['res'+str(i)]= '0'

print (df)


  res0 res1 res2 res3 res4

0    0    0    0    0    0

1    0    0    0    0    0

2    0    0    0    0    0

3    0    0    0    0    0

4    0    0    0    0    0


查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信