【问题标题】:An error when I run the following code in data science with python in coursera当我在 coursera 中使用 python 在数据科学中运行以下代码时出错
【发布时间】:2021-07-19 22:53:36
【问题描述】:

当我针对该问题运行以下代码时出现错误。 题: 让我们探讨一下小时候喂母乳和从医疗保健提供者那里接种季节性流感疫苗之间的关系。返回我们认识的儿童在小时候喝过母乳和不认识的儿童的平均流感疫苗数量的元组。

这个函数应该返回一个元组的形式(使用正确的数字):

(2.5, 0.1)

代码:

def average_influenza_doses():
    # YOUR CODE HERE
    # raise NotImplementedError()
    import pandas as pd
    import numpy as np
    df = pd.read_csv("assests/NISPUF17.csv", index_col=0)
   
    cbf_flu=df.loc[:,['CBF_01','P_NUMFLU']]
   
   
    cbf_flu1=cbf_flu[cbf_flu['CBF_01'] ==1].dropna()
    cbf_flu2=cbf_flu[cbf_flu['CBF_01'] ==2].dropna()
   
    flu1=cbf_flu1['P_NUMFLU'].values.copy()
    flu1[np.isnan(flu1)] = 0
    f1=np.sum(flu1)/len(flu1)
   
    flu2=cbf_flu2['P_NUMFLU'].values.copy()
    flu2[np.isnan(flu2)] = 0
    f2=np.sum(flu2)/len(flu2)
   
    aid =(f1,f2)
    return aid

assert len(average_influenza_doses())==2, "在一个元组中返回两个值,第一个表示是,第二个表示否。"

【问题讨论】:

  • 您好,欢迎来到 StackOverflow 社区。请阅读这篇有用的帖子以提出更好的问题。请分享您遇到的错误。提供您拥有的输入和您想要的输出将有助于回答您的问题。 stackoverflow.com/questions/20109391/…

标签: python pandas data-science


【解决方案1】:

你拼错了目录:

错误:df = pd.read_csv("assets/NISPUF17.csv", index_col=0)

RIGHT:df = pd.read_csv("assets/NISPUF17.csv", index_col=0)

我只发现了这个错误

【讨论】:

    【解决方案2】:

    您的代码应如下所示。不要使用.values,只需获取 Pandas 系列并对其应用聚合函数 .sum()

    import pandas as pd
    import numpy as np
    def average_influenza_doses():
    
        df = pd.read_csv("assets/NISPUF17.csv", index_col=0)
    
        cbf_flu = df[['CBF_01','P_NUMFLU']]
    
    
        cbf_flu1 = cbf_flu[cbf_flu['CBF_01'] == 1].dropna()
        cbf_flu2 = cbf_flu[cbf_flu['CBF_01'] == 2].dropna()
    
        flu1 = cbf_flu1['P_NUMFLU']
        f1 = flu1.sum() / flu1.size
    
        flu2 = cbf_flu2['P_NUMFLU']
        f2 = flu2.sum() / flu2.size
    
        print(f1, f2)
        return (f1,f2)
    

    【讨论】:

    • 另外,不要忘记修复您从中读取 csv 的文件源。
    【解决方案3】:

    回答这个问题的方法之一:

    键入以下代码以读取给定的数据集

    import pandas as pd
    df=pd.read_csv('assets/NISPUF17.csv',index_col=0)
    df
    

    主要代码

    def average_influenza_doses():
        # YOUR CODE HERE
        BF_Flu=df[df['CBF_01']==1]
        avg_BF=BF_Flu['P_NUMFLU'].mean()
        NBF_Flu=df[df['CBF_01']==2]
        avg_NBF=NBF_Flu['P_NUMFLU'].mean()
        tup=(avg_BF,avg_NBF)
        return tup
        raise NotImplementedError()
    

    使用以下代码执行

    average_influenza_doses()
    

    使用已经给出的以下代码进行检查

    assert len(average_influenza_doses())==2, "Return two values in a tuple, the first for yes and the second for no."
    

    [CBF_01]=1 - 收到母乳

    [CBF_01]=1 - 未收到母乳

    [P_NUMFLU] - 受流感影响的儿童人数

    【讨论】:

      【解决方案4】:
          def average_influenza_doses():
          # YOUR CODE HERE
              df=pd.read_csv('assets/NISPUF17.csv',index_col=0)
              bf = df[df['CBF_01']==1]
              nbf = df[df['CBF_01']!=1]
              mean_bf = bf['P_NUMFLU'].mean()
              mean_nbf = nbf['P_NUMFLU'].mean()
              return ((mean_bf,mean_nbf))
      

      【讨论】:

        猜你喜欢
        • 2020-03-12
        • 2019-01-26
        • 1970-01-01
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-13
        • 2015-05-08
        相关资源
        最近更新 更多