给定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