给出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
此外,可能还有一种更有效的方法,我愿意提出建议!
答案 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