Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带条件的两个数据帧的类列_Python_Excel_Pandas - Fatal编程技术网

Python 带条件的两个数据帧的类列

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

我在这里碰到了一个街区。我必须翻译这个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  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