使用 pandas 条件基于另一个数据帧获取一个数据帧中的'cell'值



给定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['%']中的所有值,我希望只得到满足条件的行中的值。

像这样:

Title   |   Referral   |  University
Analyst        3             10
Manager                       1

此外,可能还有一种更有效的方法可以做到这一点,我愿意接受建议!

只使用pivot,不需要逻辑:

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

最新更新