gpt4 book ai didi

python - 从另一个 Pandas DataFrame 引用一行

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:22 26 4
gpt4 key购买 nike

假设我有 2 个 DataFrame:

数据框 1

A  B
a 1
b 2
c 3
d 4

数据框2:

C D
a c
b a
a b

目标是向 DataFrame 2 ('E') 添加一列。

C D E
a c (1-3=-2)
b a (2-1=1)
a b (1-2=-1)

如果这是 excel,公式可能类似于“=vlookup(A1,DataFrame1,2)-vlookup(B1,DataFrame1,2)”。知道这个公式在 Python 中是什么样子吗?

谢谢!

最佳答案

Pandas 系列可以被认为是从其索引到其值的映射。在这里,我们希望使用第一个数据帧 df1 作为从列 A 到列 B 的映射。所以自然而然的做法是将 df1 转换为 Series:

s = df1.set_index('A')['B']
# A
# a 0
# b 1
# c 2
# d 3
# Name: B, dtype: int64

现在我们可以使用 Series.map基于 s 的 Series 中“查找”值的方法:

import pandas as pd
df1 = pd.DataFrame({'A':list('abcd'), 'B':[1,2,3,4]})
df2 = pd.DataFrame({'C':list('aba'), 'D':list('cab')})
s = df1.set_index('A')['B']
df2['E'] = df2['C'].map(s) - df2['D'].map(s)

print(df2)

产量

   C  D  E
0 a c -2
1 b a 1
2 a b -1

关于python - 从另一个 Pandas DataFrame 引用一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44579323/

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