Добавить серию в DataFrame как новые столбцы с определенным индексом - PullRequest
0 голосов
/ 06 января 2019

У меня есть датафрейм, похожий на этот:

    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'

до определенного индекса в кадре данных, например, с индексом 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 - это фрейм данных:

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

Это работает, но я бы предпочел решение без необходимости перебирать серии, так как таким образом я должен добавлять каждый столбец один за другим с большими наборами данных, которые кажутся узким местом.

1 Ответ

0 голосов
/ 06 января 2019

Используйте to_frame и concat:

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 - это индекс, к которому вы хотите объединить строки серии.

...