将 Series 作为特定索引处的新列附加到 DataFrame

Append a Series to a DataFrame as new columns at a specific index

我有一个如下所示的 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

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

使用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 的参数是您要将系列行连接到的索引。