Панды, назначьте несколько значений столбца - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть данные пользователя в df_user: только 1 строка

user_id, age, height, item_id, item_height
1, 11, 15, 2, 3

У меня есть df с такими же столбцами

user_id, age, height, item_id, item_height
2, 22, 33, 3, 4
5, 22, 33, 5, 4

Теперь я хочу назначить несколько столбцов (user_id, age,высота) df с использованием значений df_user

, поэтому результат будет

user_id, age, height, item_id, item_height
1, 11, 15, 3, 4
1, 11, 15, 5, 4

В настоящее время я думаю о следующем, они лучше?

df = df.assign(user_id=df_user.user_id.values, age=df_user.age.values, height=df_user.height.values) 

В основном, набирать их утомительно, если у вас есть еще столбцы для копирования ..

1 Ответ

1 голос
/ 06 апреля 2019

вы можете создать Series с помощью Index.get_indexer для позиций по именам столбцов и DataFrame.iloc для выбора по позициям:

L = ['user_id', 'age', 'height']
df1 = df.assign(**df_user.iloc[0, df_user.columns.get_indexer(L)])

Или возможно использовать DataFrame.loc для выбора по меткам:

L = ['user_id', 'age', 'height']
#if index is 0
#df1 = df.assign(**df_user.loc[0, L])
#general index
df1 = df.assign(**df_user.loc[df_user.index[0], L])

print (df1)
   user_id  age  height  item_id  item_height
0        1   11      15        3            4
1        1   11      15        5            4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...