当我在 coursera 中使用 python 在数据科学中运行以下代码时出错

Posted

技术标签:

【中文标题】当我在 coursera 中使用 python 在数据科学中运行以下代码时出错【英文标题】:An error when I run the following code in data science with python in coursera 【发布时间】: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, "在一个元组中返回两个值,第一个表示是,第二个表示否。"

【问题讨论】:

您好,欢迎来到 *** 社区。请阅读这篇有用的帖子以提出更好的问题。请分享您遇到的错误。提供您拥有的输入和您想要的输出将有助于回答您的问题。 ***.com/questions/20109391/… 【参考方案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))

【讨论】:

以上是关于当我在 coursera 中使用 python 在数据科学中运行以下代码时出错的主要内容,如果未能解决你的问题,请参考以下文章

python Coursera - 打开文本文件并使用正则表达式计算嵌入在文本中的数字。

Coursera课程《Python数据结构》中课件

Coursera课程《大家的Python》中一些资料

Coursera课程《Python数据结构》中课程目录

python Coursera - 使用XML打开网站并解析数字并总结它们。

python Coursera - 获取位置代码,lat long(可与google一起使用)