【发布时间】:2019-02-03 19:50:40
【问题描述】:
我有 2 个数据框如下:
df1={"group":["A","B"],
"unit":["U1","U2"],
"char1":["C1","C2"],
"char2":["Large","Medium"],
"char3":["","R"]
}
df1=pd.DataFrame.from_dict(df1)
和
df2={"char1":["C1","C1","C1","C1","C2","C2","C2","C3","C3"],
"char2":["Large","Large","Large","Large","Medium","Medium","Medium","Medium","Large"],
"char3":["U","U","U","R","R","R","U","R","R"],
"result":[113,114,115,116,818,819,1101,1102,1103]}
df2=pd.DataFrame.from_dict(df2)
我想用 df1 列 (char1,char2,char3) 的值过滤 df2。 最后,对于 df1 中的每个 group_unit 对,我想分配来自 df2 的过滤结果。
所需的输出如下所示:
output={"group":["A","A","A","A","B","B"],
"unit" :["U1","U1","U1","U1","U2","U2"],
"result":[113,114,115,116,818,819]}
output=pd.DataFrame.from_dict(output)
我尝试过使用“isin”和其他一些东西,但无法到达那里。 我很欣赏任何类型的软编码解决方案。
【问题讨论】:
-
如果你想对 char1 char2 和 char3 进行“过滤”,你的输出不正确
-
@Chris,你是对的。我更正了示例输出。感谢您的警告。
标签: python pandas loops filtering