如何使用一些新索引向pandas DataFrame(来自系列)添加新列?

时间:2017-05-21 16:01:00

标签: python pandas dataframe append

假设我有以下内容:

df = pd.DataFrame(data=[[0.5, 0.2],[0.5, 0.8]], columns=['Col1', 'Col2'], index=['Existing 1', 'Existing 2'])
new_col = pd.Series(data=[0.6, 0.4], index=['Existing 1', 'New 1'])

哪个收益率:

df:
            Col1  Col2
Existing 1   0.5   0.2
Existing 2   0.5   0.8

new_col:
Existing 1    0.6
New 1         0.4

我想要做的是在名为'New'的列下添加new_col,添加“New 1”索引,并用nan填充空。我试过通过:

df['New'] = new_col

然而,这似乎没有附加“新1”索引。因此我最终得到:

            Col1  Col2  New
Existing 1   0.5   0.2  0.6
Existing 2   0.5   0.8  NaN

我想要的地方:

            Col1  Col2  New
Existing 1   0.5   0.2  0.6
Existing 2   0.5   0.8  NaN
New 1        NaN   NaN  0.4

思想?

1 个答案:

答案 0 :(得分:2)

您可以使用pd.concat将系列与axis=1上的数据框连接起来,默认情况下会outer加入,从而包含数据框和系列中的索引在结果中:

pd.concat([df, new_col.rename('New')], axis=1)

#          Col1 Col2    New
#Existing 1 0.5  0.2    0.6
#Existing 2 0.5  0.8    NaN
#     New 1 NaN  NaN    0.4