而不是在同一行上将值附加为新列,pandas添加了新列AND新行

问题描述 投票:0回答:1

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

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

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

pandas dataframe append
1个回答
0
投票

这是因为您要添加的系列索引不兼容。原始数据帧具有['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
© www.soinside.com 2019 - 2024. All rights reserved.