Python 从一个df有条件地添加数据

Python 从一个df有条件地添加数据,python,pandas,Python,Pandas,我有一个如下所示的数据帧: test_data = pd.DataFrame(np.array([np.arange(10)]*3).T, columns =['issuer_id','winner_id','gov']) issuer_id winner_id gov 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7

我有一个如下所示的数据帧:

test_data = pd.DataFrame(np.array([np.arange(10)]*3).T, columns =['issuer_id','winner_id','gov'])


    issuer_id   winner_id   gov
0   0   0   0
1   1   1   1
2   2   2   2
3   3   3   3
4   4   4   4
5   5   5   5
6   6   6   6
7   7   7   7
8   8   8   8
9   9   9   9   
还有一个由两个元组组成的列表,其中包括一个数据帧和一个编码为“gov”的标签(可能最好是一个标签:dataframe dict)。在测试中,下面的两个标签是2和7

test_out = [(pd.DataFrame(np.array([np.arange(10)]*2).T, columns =['id','partition']),2),(pd.DataFrame(np.array([np.arange(10)]*2).T, columns =['id','partition']),7)]

[(   id  partition
  0   0          0
  1   1          1
  2   2          2
  3   3          3
  4   4          4
  5   5          5
  6   6          6
  7   7          7
  8   8          8
  9   9          9, 2), (   id  partition
  0   0          0
  1   1          1
  2   2          2
  3   3          3
  4   4          4
  5   5          5
  6   6          6
  7   7          7
  8   8          8
  9   9          9, 7)]
我想向test_数据框架添加两列:issuer_分区和winner_分区

test_data['issuer_partition']=''
test_data['winner_partition']=''
我想从test_out列表中填写这些值,其中gov列中的条目确定要从中提取的标记为dataframe的test_out。然后我在id分区数据框中查找winner_id和issuer_id,并将它们写入测试数据

换句话说:我有一个带标签的数据帧列表,我希望通过循环来有条件地填充主数据帧中的数据

在这个场景中,有没有一种聪明的方法可以使用merge


*编辑-添加了另一个句子并修复了测试代码

您的
测试代码
构造代码未运行,请修复并显示所需的输出和输入。对此非常抱歉-经过几次编辑后,我希望它可读。我非常不清楚您试图实现的目标。您能显著简化此操作吗,当gov值与test_out中的dfs的ID和分区匹配时,我看不出您如何区分要查找的test_out列表中的哪个df,您所写的内容对我来说都没有多大意义,2和7在这里意味着什么?所以我现在读到2和7代表政府id,你可以使用dict而不是元组列表来执行这个查找。让gov成为一个真正的列,并拥有一个包含所有值的数据框架,然后在gov上合并以填充所需的值,这样会更容易