gpt4 book ai didi

python - Pandas - 加入 2 个数据集的 OR 条件

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

Pandas 新手

我有 2 个数据集,示例数据:

C1 C2 C3 C4
A ANN BXX 9
B YYY NNN 10
C UUU DAF 11



C7 C8 C9
N PP C
B KK 68
F UUU A

期望的输出:

A ANN UUU
B YYY KK
C UUU PP

我需要按照以下 sql 查询方式加入数据集:

select C1 , C2,C8 from tab1 A, tab2  B where  (A.C1 = B.C7 or A.C1 = B.C9);

简而言之,如果 C1 = C7 或 C1 = C9,我需要合并 2 个数据集。我了解如何加入一个条件。

类似的东西:

OuT = pd.merge(tab1 , tab2 , left_on = 'C1', right_on =['C7' OR 'C9'], how = 'inner')

最佳答案

我认为您需要通过 melt reshape tab2然后 merge :

tab2 = tab2.melt('C8', value_name='C1').drop('variable', axis=1)
#older pandas versions
#tab2 = pd.melt(tab2, id_vars='C8', value_name='C1').drop('variable', axis=1)

print (tab2)
C8 C1
0 PP N
1 KK B
2 UUU F
3 PP C
4 KK 68
5 UUU A

#inner join by default, so can omit how='inner'
OuT = pd.merge(tab1 , tab2 , on = 'C1')
print (OuT)
C1 C2 C3 C4 C8
0 A ANN BXX 9 UUU
1 B YYY NNN 10 KK
2 C UUU DAF 11 PP

然后如果需要过滤列:

OuT = pd.merge(tab1 , tab2 , on = 'C1')[['C1','C2','C8']]
print (OuT)
C1 C2 C8
0 A ANN UUU
1 B YYY KK
2 C UUU PP

关于python - Pandas - 加入 2 个数据集的 OR 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44906508/

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