【问题标题】:What is the appropriate way of outputting dataframe results from a function?从函数输出数据帧结果的适当方法是什么?
【发布时间】:2022-01-21 13:19:47
【问题描述】:

我对 python 和 pandas 很陌生,我正在尝试创建一个函数来读取四个数据集并将它们组合到一个数据帧中。如果我不尝试将所有这些都包装在一个函数中,我可以获得我需要的结果,但我计划为另外四个数据集创建一个类似的数据框,所以我相信这个函数会稍微清理一下。

使用下面的代码我得到以下错误(NameError: name 'crime' is not defined)

# function to import datasets and combine them for grouped analysis
def Crime2020():

    # import datasets from 2020
    mayCrime=pd.read_csv('C://datasets/summer_comp/2020-05.csv')
    junCrime=pd.read_csv('C://datasets/summer_comp/2020-06.csv')
    julCrime=pd.read_csv('C://datasets/summer_comp/2020-07.csv')
    augCrime=pd.read_csv('C://datasets/summer_comp/2020-08.csv')

    # combine dataframes using concatenation
    frames = [mayCrime, junCrime, julCrime, augCrime]
    crime = pd.concat(frames)
    
    return crime

crime = Crime2020(crime)
crime.head()

似乎我没有正确访问该功能,但由于我是新手,我不太明白为什么。我尝试了一些在其他地方见过的不同方法,但似乎没有任何效果。

任何帮助将不胜感激。毫无疑问,我只是缺少一些简单的东西。

【问题讨论】:

    标签: python pandas dataframe jupyter-notebook


    【解决方案1】:

    您正在尝试将不存在的变量传递给函数。 crime = Crime2020(crime) 应该是 crime = Crime2020(),因为变量是在函数内部创建的,而不是从外部传递的。

    顺便说一句,最好对类使用大写命名,对函数使用蛇形命名。

    【讨论】:

    • 谢谢!你的解释解决了。我还将尝试改进我的命名约定。
    猜你喜欢
    • 2016-09-12
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多