给定两个数据框。一个包含一列重复的值(在这种情况下为a)。另一个包含此值对应的内容(在此示例中,它对应于某些“ d”值)。我如何根据另一个数据框中记录的规则,用一个新列有效地补充第一个数据框,其中的值对应于某个现有列。这是一个非常慢的示例代码:
import pandas as pd
import numpy as np
d1 = pd.DataFrame(np.asarray([[1,2,3], [2,4,5], [3,4,5], [2,1,4], [3,4,5]]), columns = ['a', 'b', 'c'])
d2 = pd.DataFrame(np.asarray([[1,7], [2,8], [3,11]]), columns = ['a', 'd'])
d = np.empty((d1.shape[0],))
for i in range(d1.shape[0]):
temp = d2.loc[d2['a'] == d1.at[i,'a']]
d[i] = temp['d'].array[0]
d1['d'] = d
这是d1原始图像:
这是d2:
这是结果d1:
问题来源:stackoverflow
您可能正在寻找pd.merge。 在您的情况下,d1 = d1.merge(d2,on = ['a'],how ='left')
应该可以解决问题。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。