从列表创建DateFrame,包含1列和n行

时间:2017-08-24 22:31:21

标签: python list pandas dataframe

出于某种原因,当我尝试从此列表中创建一个数据帧(称为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个条目的列表。

为什么同一个命令会在列中为一个列表返回列表,并将其返回到另一个列表的行中?

1 个答案:

答案 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)。