出于某种原因,当我尝试从此列表中创建一个数据帧(称为system_mean)时,其中包含288个条目,数据帧形状为(1,288),但是当我从具有3个条目的虚拟列表创建数据帧时,数据帧形状是(3,1)。我试图将system_mean数据帧添加到另一个形状为(288,15)的数据帧,因此它必须是相同的形状。
import pd
L = ['Thanks You', 'Its fine no problem', 'Are you sure']
df3 = pd.DataFrame(L)
system_mean = [Final_Price.mean(axis=1)]
df2 = pd.DataFrame(system_mean)
请注意; Final_Price是一个形状为(288,15)的数据帧,我取每行的平均值。所以Final_Price.mean(axis = 1)返回一个包含288个条目的列表。
为什么同一个命令会在列中为一个列表返回列表,并将其返回到另一个列表的行中?
答案 0 :(得分:1)
Final_Price.mean(axis=1)
不是一个列表,而是一个熊猫系列。通过执行[Final_Price.mean(axis=1)]
,您将其置于列表中,这是导致DataFrame水平的原因。
比较以下内容:
L = pd.Series(['Thanks You', 'Its fine no problem', 'Are you sure'])
pd.DataFrame(L)
Out:
0
0 Thanks You
1 Its fine no problem
2 Are you sure
pd.DataFrame([L])
Out:
0 1 2
0 Thanks You Its fine no problem Are you sure
所以你可以通过删除括号来解决它,或者你也可以使用Final_Price.mean(axis=1).to_frame('name_of_the_column
)。