我在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)
主要是,当您有更多列要复制时,键入这些内容很麻烦。
答案 0 :(得分:1)
您可以按列名创建Index.get_indexer
,按DataFrame.iloc
创建DataFrame.loc
,并按位置选择:
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])