【问题标题】:Append a Series to a DataFrame as new columns at a specific index将 Series 作为特定索引处的新列附加到 DataFrame
【发布时间】:2019-06-01 10:50:43
【问题描述】:

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

现在我使用以下代码 sn-p,content_to_add 是系列,data 是 DataFrame:

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

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

【问题讨论】:

    标签: python pandas dataframe concat series


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-05-24
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2017-03-30
      • 2017-02-26
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多