开发者社区> 问答> 正文

如何补充基于另一个的数据框?

给定两个数据框。一个包含一列重复的值(在这种情况下为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

展开
收起
is大龙 2020-03-24 09:34:08 310 0
1 条回答
写回答
取消 提交回答
  • 您可能正在寻找pd.merge。 在您的情况下,d1 = d1.merge(d2,on = ['a'],how ='left')应该可以解决问题。

    回答来源:stackoverflow

    2020-03-24 09:34:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载