![](/img/trans.png)
[英]How to propagate values in one column to rows in other columns (pandas dataframe)
[英]How to extract values of one dataframe with values of other dataframe in pandas?
假设您创建了下一个python pandas数据框:
In[1]: print df1.to_string()
ID value
0 1 a
1 2 b
2 3 c
3 4 d
In[2]: print df2.to_string()
Id_a Id_b
0 1 2
1 4 2
2 2 1
3 3 3
4 4 4
5 2 2
如何使用下一个值创建帧df_ids_to_values :
In[2]: print df_ids_to_values.to_string()
value_a value_b
0 a b
1 d b
2 b a
3 c c
4 d d
5 b b
换句话说,我想用df1中的相应值替换df2的id。 我已经尝试通过执行for循环来做到这一点,但它非常慢,我正在跳跃,pandas中有一个函数,允许我非常有效地执行此操作。
谢谢你的帮助...
首先在df1上设置索引
df1 = df1.set_index('ID')
然后加入两列
df = df2.join(df1, on='Id_a')
df = df.rename(columns = {'value' : 'value_a'})
df = df.join(df1, on='Id_b')
df = df.rename(columns = {'value' : 'value_b'})
结果:
> df
Id_a Id_b value_a value_b
0 1 2 a b
1 4 2 d b
2 2 1 b a
3 3 3 c c
4 4 4 d d
5 2 2 b b
[6 rows x 4 columns]
(并使用df[['value_a','value_b']]
获得预期的输出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.