熊猫没有在同一行上将值作为新列附加,而是添加了新列和新行

时间:2019-11-26 00:34:18

标签: pandas dataframe append

我下面的内容是我尝试执行的串联类型的示例。

df = pd.DataFrame(np.array([1, 2, 3]).reshape((1, 3)), columns = ['col1', 'col2', 'col3'], index = ['a'])
df2 = pd.DataFrame() # already exists elsewhere in code

df2 = df2.append([df, pd.Series(1, name = 'label')])

我希望得到的结果是:

  col1  col2  col3  label
a  1.0  2.0   3.0    1

但我知道是

     col1  col2  col3    0
a     1.0  2.0   3.0    NaN
0     NaN  NaN   NaN    1.0

我知道我加入了这些错误,但是我似乎无法弄清楚它是如何完成的。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这是因为您要添加的系列索引不兼容。原始数据帧具有['a']作为指定索引,并且在系列中未指定索引。如果要添加新列而不指定索引,则以下内容将为您提供所需的内容:

df = pd.DataFrame(np.array([1, 2, 3]).reshape((1, 3)), columns = ['col1', 'col2', 'col3'], index = ['a'])
df2 = pd.DataFrame() # already exists elsewhere in code
df2 = df2.append([df]) # append the desired dataframe
df2['label'] = 1 # add a new column with the value 1 across all rows
print(df2.to_string())

   col1  col2  col3  label
a     1     2     3      1