使用熊猫条件获取基于另一个数据框的一个数据框中的“单元格”的值

时间:2020-04-24 18:59:58

标签: python pandas

给出DF1:

Title   |   Origin    |  %
Analyst   Referral       3
Analyst   University    10
Manager   University     1

和DF2:

Title   |   Referral   |  University
Analyst        
Manager                       

我正在尝试根据以下条件设置DF2中的值:

DF2['Referral'] = np.where((DF1['Title']=='Analyst') & (DF1['Origin']=='Referral')), DF1['%'], '0'

作为结果,我得到的是DF1['%']中的所有值,而Im希望仅获得满足条件的行中的值。

赞:

Title   |   Referral   |  University
Analyst        3             10
Manager                       1

此外,可能还有一种更有效的方法,我愿意提出建议!

1 个答案:

答案 0 :(得分:1)

只需使用数据透视,无需逻辑:

s = """Title|Origin|%
Analyst|Referral|3
Analyst|University|10
Manager|University|1"""

df = pd.read_csv(StringIO(s), sep='|')

df.pivot('Title', 'Origin', '%')

Origin   Referral  University
Title                        
Analyst       3.0        10.0
Manager       NaN         1.0