如何通过检查 2 列中的值将列形式 1 df 映射到另一个 df
How to .map a column form 1 df for another df by checking the value in 2 columns
如何将 1 列映射到 2 列 ??
- 目标是通过 id 将成本从 REF table 映射到数据。
- 问题 .map 只是将 1 列与 1 列进行比较
数据混乱,有些行有 ID 名称而不是 ID。
我可以创建一个新的 REF table 来替换这些 id_names 到 id,问题是有太多..
参考 table
google =
id id_name cost
154 campaign1 15
155 campaign2 12
1566 campaign33 12
158 campaign4 33
数据
cw =
id
154
155
campaign1
campaign33
1566
158
campaign4
期望的输出
cw =
id cost
154 15
155 12
campaign1 15
campaign33 12
1566 12
158 33
campaign4 33
我做了什么..
# Just work for one column
cw['cost'] = cw['id'].map(google.set_index('id')['cost'])
您可以 melt
和映射:
map_series = google.melt(id_vars='cost').set_index('value')['cost']
cw['cost'] = cw['id'].map(map_series)
如何将 1 列映射到 2 列 ??
- 目标是通过 id 将成本从 REF table 映射到数据。
- 问题 .map 只是将 1 列与 1 列进行比较
数据混乱,有些行有 ID 名称而不是 ID。 我可以创建一个新的 REF table 来替换这些 id_names 到 id,问题是有太多..
参考 table
google =
id id_name cost
154 campaign1 15
155 campaign2 12
1566 campaign33 12
158 campaign4 33
数据
cw =
id
154
155
campaign1
campaign33
1566
158
campaign4
期望的输出
cw =
id cost
154 15
155 12
campaign1 15
campaign33 12
1566 12
158 33
campaign4 33
我做了什么..
# Just work for one column
cw['cost'] = cw['id'].map(google.set_index('id')['cost'])
您可以 melt
和映射:
map_series = google.melt(id_vars='cost').set_index('value')['cost']
cw['cost'] = cw['id'].map(map_series)