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上合并以填充所需的值,这样会更容易