Добавить серии панд в качестве новых столбцов к определенной строке Dataframe - PullRequest
0 голосов
/ 04 июня 2018

Скажем, у меня есть датафрейм

df = pd.DataFrame({'A':[0,1],'B':[2,3]})

    A   B
0   0   2
1   1   3

Затем у меня есть ряд, сгенерированный какой-то другой функцией с использованием входных данных из первой строки df, но который не перекрывается с существующим df

s = pd.Series ({'C':4,'D':6})

C    4
D    6

Теперь я хочу добавить s к df.loc[0], чтобы ключи становились новыми столбцами, а значения добавлялись только в эту первую строку.Конечный результат для df должен выглядеть следующим образом:

    A   B   C   D
0   0   2   4   6
1   1   3   NaN NaN

Как бы я это сделал?Подобные вопросы, которые я обнаружил, похоже, смотрят только на то, как сделать это для одного столбца или просто добавить Series в качестве новой строки в конце DataFrame, но не обновить существующую строку, добавив несколько новых столбцов из Series.

Я пытался df.loc[0,list(['C','D'])] = [4,6], который был предложен в другом ответе, но это работает, только если ['C','D'] уже существующие столбцы в Dataframe.df.assign(**s) работает, но затем присваивает значения Series всем строкам.

1 Ответ

0 голосов
/ 04 июня 2018

join с транспонированием:

df.join(pd.DataFrame(s).T)

   A  B    C    D
0  0  2  4.0  6.0
1  1  3  NaN  NaN

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

pd.concat([df, pd.DataFrame(s).T], axis=1)

   A  B    C    D
0  0  2  4.0  6.0
1  1  3  NaN  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...