【发布时间】:2016-04-09 20:15:48
【问题描述】:
这是一个预处理的 DataFrame,列表示特定列的频率和成功值。例如:A 列分别与FREQ_A 和SUCCESS_A 关联。
A B Gold FREQ_A SUCCESS_A FREQ_B SUCCESS_B
0 1 B 0 1 0.00 1 0.00
1 2 A 1 1 0.01 1 0.01
我有另一个 DataFrame,如下所示:
A B
0 1 A
1 2 B
现在我想添加相关的频率和成功列(FREQ_* 和 SUCCESS_*、* : {A,B}),从预处理的 DataFrame 中查找值。一个重要的观察是预处理的 DataFrame 具有一组相同的(非频率/成功)列,但不是一组完整的键。 (见行2、A:3和B:C不在预处理帧中)
例如:
数据框中的第一行,值为A = 1, B = A,所以:
FREQ_A 将采用FREQ_A 的原始数据帧的值,其中A == 1
和
FREQ_B 将采用FREQ_B 的原始数据框的值,其中B == A
理想输出
A B FREQ_A SUCCESS_A FREQ_B SUCCESS_B
0 1 A 1 0.00 1 0.01
1 2 B 1 0.01 1 0.00
测试用例
A B
0 1 A
1 2 B
2 1 C
3 4 A
【问题讨论】:
-
就不能直接在上面调用
drop_duplicates()来实现你想要的吗? -
在这个例子中,是的!但是行
1可能是1 1 B,它不在原始数据框中 - 我认为将更新第二个数据框以使这不平凡 -
我不明白您的评论
1 1 B如何映射到您的列?你能编辑你的问题吗 -
我会的,如果不清楚,抱歉。
Index = 1, A = 1, B = B,将输出FREQ_A = 3, SUCCESS_A = 0.006667, FREQ_B = 1, SUCCESS_B = 0.010000 -
现在变得更加混乱了......什么是加入条件?
标签: python pandas dataframe lookup-tables