Python 带条件的两个数据帧的类列
我在这里碰到了一个街区。我必须翻译这个excel公式Python 带条件的两个数据帧的类列,python,excel,pandas,Python,Excel,Pandas,我在这里碰到了一个街区。我必须翻译这个excel公式IF(COUNTIFS(advisor!$C:$C,$A2)=0,“0公开”,“独立”) 到目前为止,这是我一直得到的python熊猫解决方案 KeyError:('company_id','发生在索引1'处) 任何帮助都将不胜感激 编辑 df样本数据:公司数据 id ticker iq_id company auditor_compensation 48299 ENXTAM:AALB
IF(COUNTIFS(advisor!$C:$C,$A2)=0,“0公开”,“独立”)
到目前为止,这是我一直得到的python熊猫解决方案
KeyError:('company_id','发生在索引1'处)
任何帮助都将不胜感激
编辑
df样本数据:公司数据
id ticker iq_id company auditor_compensation
48299 ENXTAM:AALB IQ881736 Aalberts Industries ?
48752 ENXTAM:ABN IQ1090191 ABN AMRO Group ?
48865 ENXTAM:ACCEL IQ4492981 Accell Group ?
49226 ENXTAM:AGN IQ247906 AEGON ?
49503 ENXTAM:AD IQ373545 Koninklijke ?
下面是df_advisor的样本数据
id type company_id advisor_company_id
1 auditor 48299 60911
17 auditor 48752 165120
6359 auditor 48865 73607
37 auditor 49226 81877
4415 compensation 49226 90258
53 auditor 49503 81877
因此,我们的目标是检查
df\u advisor
中的整个company\u id
,并计算发生率df['id']
,以填充auditor\u compensation
列。假设您想知道A列中的名称是否在Excel的C列列表中
df['Boolean'] = df['id'].isin(list(df_advisor['company_id'])
df['auditor_compensation'] = ''
df.loc[df['Boolean'] == False, 'auditor_compensation'] = '0 disclosed'
df.loc[df['Boolean'] == True, 'auditor_compensation'] = 'Independent'
使用:
嗨,otje,欢迎加入SO。我希望你能为你的问题找到答案。阅读并生成共享示例数据是个好主意…@I'-'我刚刚添加了示例数据,提前感谢您的帮助。解决方案很有帮助,但它没有考虑,
df['id']
的计数次数出现在df\u advisor['company\u id']
列中
df['Boolean'] = df['id'].isin(list(df_advisor['company_id'])
df['auditor_compensation'] = ''
df.loc[df['Boolean'] == False, 'auditor_compensation'] = '0 disclosed'
df.loc[df['Boolean'] == True, 'auditor_compensation'] = 'Independent'
df['auditor_compensation'] = np.where(df['id'].isin(df_advisor['company_id']),
'0 disclosed',
'Independent')
print (df)
id ticker iq_id company auditor_compensation
0 48299 ENXTAM:AALB IQ881736 Aalberts Industries 0 disclosed
1 48752 ENXTAM:ABN IQ1090191 ABN AMRO Group 0 disclosed
2 48865 ENXTAM:ACCEL IQ4492981 Accell Group 0 disclosed
3 49226 ENXTAM:AGN IQ247906 AEGON 0 disclosed
4 49503 ENXTAM:AD IQ373545 Koninklijke 0 disclosed