gpt4 book ai didi

python - 在 2 列 Pandas 上映射

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:59 28 4
gpt4 key购买 nike

我有一个如下所示的数据框:

        Col1           Col2
0 A PY
1 B PA
2 C PB
3 B PB

和这个系列:

                            Value
Col1 Col2
A PY 20
B PB 30

我想做一个映射,如果该系列有一个索引(仅前 Col1),它非常简单:

  df['Value'] = df['Col1'].map(s)

如何基于 2 个索引/列进行映射?

谢谢!

最佳答案

您可以将它们合并到公共(public)列(具有相同名称的列):

In [28]: d1
Out[28]:
Col1 Col2
0 A PY
1 B PA
2 C PB
3 B PB

In [29]: d2
Out[29]:
Value
Col1 Col2
A PY 20
B PB 30

In [30]: d1.merge(d2.reset_index())
Out[30]:
Col1 Col2 Value
0 A PY 20
1 B PB 30

或者使用左外连接:

In [33]: d1.merge(d2.reset_index(), how='left')
Out[33]:
Col1 Col2 Value
0 A PY 20.0
1 B PA NaN
2 C PB NaN
3 B PB 30.0

同样的解决方案也适用于 d2 作为系列:

In [31]: s
Out[31]:
Col1 Col2
A PY 20
B PB 30
Name: Value, dtype: int64

In [32]: d1.merge(s.reset_index())
Out[32]:
Col1 Col2 Value
0 A PY 20
1 B PB 30

关于python - 在 2 列 Pandas 上映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46988650/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com