熊猫,分配多个列值

时间:2019-04-06 13:18:47

标签: pandas dataframe

我在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

现在,我想使用df的值分配df_user的某些列(user_id,年龄,身高)

所以结果应该是

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 个答案:

答案 0 :(得分:1)

您可以按列名创建Index.get_indexer,按DataFrame.iloc创建DataFrame.loc,并按位置选择frontend output

Series

或者可以使用{{3}}通过标签进行选择:

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

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])