将 numpy 数组转换为 pandas 数据框

2024-01-05

我有一个大小为 numpy 的数组31x36我想转换成 pandas 数据框来处理它。我正在尝试使用以下代码对其进行转换:

pd.DataFrame(data=matrix,
          index=np.array(range(1, 31)),
          columns=np.array(range(1, 36)))

但是,我收到以下错误:

ValueError:传递值的形状为 (36, 31),索引意味着 (35, 30)

如何解决问题并妥善改造?


至于为什么你尝试失败,范围相差 1

pd.DataFrame(data=matrix,
          index=np.array(range(1, 32)),
          columns=np.array(range(1, 37)))

由于最后一个值不包含在范围内

实际上看看你在做什么,你本来可以这样做:

pd.DataFrame(data=matrix,
          index=np.arange(1, 32)),
          columns=np.arange(1, 37)))

或者纯pandas:

pd.DataFrame(data=matrix,
          index=pd.RangeIndex(range(1, 32)),
          columns=pd.RangeIndex(range(1, 37)))

此外,如果您不指定索引和列参数,则会创建自动生成的索引和列,该索引和列将从0。不清楚为什么你需要他们从1

您也可以没有传递索引和列参数,而只是在构造后修改它们:

In[9]:
df = pd.DataFrame(adaption)
df.columns = df.columns+1
df.index = df.index + 1
df

Out[9]: 
          1         2         3         4         5         6
1 -2.219072 -1.637188  0.497752 -1.486244  1.702908  0.331697
2 -0.586996  0.040052  1.021568  0.783492 -1.263685 -0.192921
3 -0.605922  0.856685 -0.592779 -0.584826  1.196066  0.724332
4 -0.226160 -0.734373 -0.849138  0.776883 -0.160852  0.403073
5 -0.081573 -1.805827 -0.755215 -0.324553 -0.150827 -0.102148
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 numpy 数组转换为 pandas 数据框 的相关文章

随机推荐