关于为什么你尝试的方法失败了,是因为范围偏离了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
pd.DataFrame(matrix)
would work, no? To use custom index, this is another option:pd.DataFrame(arr).rename(index=lambda x: x + 1, columns=lambda x: x + 1)
- cs95