gpt4 book ai didi

python - 使用 Pandas 将多列映射到单个数据框

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:13 25 4
gpt4 key购买 nike

我正在尝试创建一个数据框(例如,df3),将薪水信息覆盖到人名上。我目前使用 df1 处理大约 1,000 个名称的列表。这是 df1 的示例。

    print df1.head() 

Salary
Name
Joe Smith 8700
Jane Doe 6300
Rob Dole 4700
Sue Pam 2100
Jack Li 3400

我还有 df2,它随机分配来自 df1 的人作为 Captain 和 Skipper 列。

    print df2.head()

Captain Skipper
Sue Pam Joe Smith
Jane Doe Sue Pam
Rob Dole Joe Smith
Joe Smith Sue Pam
Rob Dole Jack Li

如何将 df2 中的姓名替换为相应的薪水,以便我在下面具有完全相同的格式。在 Excel 中,我会使用 VLOOKUP 函数,但我不确定如何使用 Python 完成此操作。

print df3.head()   

Captain Skipper
2100 8700
6300 2100
4700 8700
8700 2100
4700 3400

最佳答案

您可以使用 df2[col].map(df1['Salary']) 根据 df1['Salary' 映射 df2 的每一列]:

import pandas as pd
df1 = pd.DataFrame({'Salary':[8700,6300,4700,2100,3400]}, index=pd.Series(['Joe Smith', 'Jane Doe', 'Rob Dole', 'Sue Pam', 'Jack Li'], name='Name'))
df2 = pd.DataFrame({'Captain':['Sue Pam', 'Jane Doe', 'Rob Dole', 'Joe Smith', 'Rob Dole'], 'Skipper': ['Joe Smith', 'Sue Pam', 'Joe Smith', 'Sue Pam', 'Jack Li']})

df3 = pd.DataFrame({col: df2[col].map(df1['Salary']) for col in df2})
print(df3)

产量

   Captain  Skipper
0 2100 8700
1 6300 2100
2 4700 8700
3 8700 2100
4 4700 3400

关于python - 使用 Pandas 将多列映射到单个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419161/

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