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')
答案 0 :(得分:1)
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