我有一个形状df1
的数据框(23,14)
,我创建了一个数据框df2
,其数组mydata
的形状为(23,3)
。
我希望df2
的行索引与df1
的行索引相同。我该怎么做?
这就是我累了:
df2 = pd.DataFrame(data = mydata, index = df1.index)
但是我收到以下错误:
传递值的形状是(23,3),索引暗示(23,14)
编辑:问题解决了,我遇到了与之前代码相关的一些维度问题。这篇文章可以删除。
答案 0 :(得分:1)
传递numpy值:
df2 = pd.DataFrame(data = mydata.values, index = df1.index)
根据您的原始尝试,您将df作为数据传递,因此ctor将尝试重用df的现有索引值,通过传递一个numpy数组,它将成为匿名数据。
当它重用df的索引时,结果实际上是一个reindex操作
你也可以做到:
df2 = mydata.copy()
df2.index = df1.index