【发布时间】:2023-03-21 21:36:02
【问题描述】:
我有两个数据框 A 和 B 有一个公共列“标签”。我想在数据框 A 中创建一个新列“地图”,其中包含来自数据框 B 的相应映射。
必要条件:
- 每次映射时,将变量计数加 1(将与数据帧 B 中的“容量”列进行比较)
- 'label' 列的映射应基于数据帧 B 中 'Num' 列的较高值来完成。此外,如果计数变得大于 'Capacity' 以进行下一次分配,则分配次佳的 'Num' 映射,依此类推.
- 如果没有可用映射或可用映射的“容量”已满,则将“映射”更新为无
数据框 A
Id label
1 1
2 1
3 1
4 2
5 2
6 3
7 3
数据框 B
label Capacity Map Num
1 1 A 0.1
1 2 B 0.2
2 2 C 0.3
3 1 D 0.2
预期的输出数据帧
Id label Map
1 1 B
2 1 B
3 1 A
4 2 C
5 2 C
6 3 D
7 3 None
任何pythonic方式。我希望能对代码进行一些解释。
【问题讨论】:
-
有任何答案解决了您的问题吗?
标签: python pandas dataframe mapping