在特定索引处将Series作为新列追加到DataFrame

时间:2019-01-06 15:38:20

标签: python pandas dataframe concat series

我有一个看起来像这样的DataFrame:

    Col1         Col2         Col3
1   'Content1.1' 'Content1.2' 'Content1.3' 
2   'Content2.1' 'Content2.2' 'Content2.3' 
3   'Content3.1' 'Content3.2' 'Content3.3' 
...

现在我要添加一个像这样的系列:

Col4  'Content2.4'
Col5  'Content2.5'
Col6  'Content2.6'

到DataFrame中的特定索引,例如,在索引 2 处,如下所示:

    Col1         Col2         Col3         Col4         Col5         Col6
1   'Content1.1' 'Content1.2' 'Content1.3' NaN          NaN          NaN
2   'Content2.1' 'Content2.2' 'Content2.3' 'Content2.4' 'Content2.5' 'Content2.6'
3   'Content3.1' 'Content3.2' 'Content3.3' NaN          NaN          NaN
...

目前,我使用以下代码段,其中content_to_add是系列,data是DataFrame:

for column, value in content_to_add.iteritems():
    data.loc[index, column] = value

这行得通,但是我更喜欢一个解决方案,而不必遍历整个系列,因为那样的话,我必须一个又一个地添加每一列,并添加看似瓶颈的大数据集。

1 个答案:

答案 0 :(得分:2)

使用to_frameconcat

index = 2
pd.concat([data, content_to_add.to_frame(index).T], axis=1)

           Col1          Col2          Col3          Col4          Col5          Col6
1  'Content1.1'  'Content1.2'  'Content1.3'           NaN           NaN           NaN
2  'Content2.1'  'Content2.2'  'Content2.3'  'Content2.4'  'Content2.5'  'Content2.6'
3  'Content3.1'  'Content3.2'  'Content3.3'           NaN           NaN           NaN

to_frame的参数是要将系列行连接到的索引。