从函数输出数据帧结果的适当方法是啥?

Posted

技术标签:

【中文标题】从函数输出数据帧结果的适当方法是啥?【英文标题】: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()

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢!你的解释解决了。我还将尝试改进我的命名约定。

以上是关于从函数输出数据帧结果的适当方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将通过 FOR 循环函数输出的多个数据帧合并为一个数据帧

从 for 循环输出 Python 连接大数据帧

从 pdf 文件导入/读取数据的最佳方法是啥?

Scala:如何在循环中组合数据帧

将数据从 Firestore 加载到 BigQuery 的适当方法是啥?

model.predict(keras)输出中的类的顺序是啥?