0

我正在尝试将 3 个 CSV 文件读入 3 个 pandas DataFrame。但是在执行该函数后,该变量似乎不可用。尝试在函数外部创建一个空白数据框,并在函数中读取和设置该框架。但是框架是空白的。

# Load data from the csv file
def LoadFiles():
    x = pd.read_csv('columns_description.csv', index_col=None)
    print("Columns Description")
    print(f"Number of rows/records: {x.shape[0]}")
    print(f"Number of columns/variables: {x.shape[1]}")
    
LoadFiles()
x.head()

上述代码的 Python Notebook 错误

在第二种方法中,我试图用数据集中的一些综合信息创建一个新的数据框。该问题再次出现,因为该变量似乎不再可用。

# Understand the variables
y = pd.read_csv('columns_description.csv', index_col=None)

def refresh_y():
    var_y = pd.DataFrame(columns=['Variable','Number of unique values'])
    for i, var in enumerate(y.columns):
        var_y.loc[i] = [y, y[var].nunique()]
        
refresh_y()

功能中错误代码和解决方案重组的屏幕截图

我对 Python 有点陌生,代码是一个示例,不代表实际数据,在函数中,一个示例是单列的。我有多个列可以根据进一步的变化在这个派生数据集中刷新,因此是函数方法。

4

2 回答 2

0

尝试以下代码

# Load data from the csv file
def LoadFiles():
    x = pd.read_csv('columns_description.csv', index_col=None)
    print("Columns Description")
    print(f"Number of rows/records: {x.shape[0]}")
    print(f"Number of columns/variables: {x.shape[1]}")
    return x
    
x2 = LoadFiles()
x2.head()

函数中的变量只能在函数内部使用。您可能需要研究范围。我推荐以下关于 Python 范围的简单网站。

https://www.w3schools.com/python/python_scope.asp

于 2021-11-24T02:21:44.980 回答
0

定义函数时,如果要使用函数中定义的变量,应以return var. 检查这一点:函数返回 None 没有返回语句和一些关于定义函数的教程(https://learnpython.com/blog/define-function-python/)。

一个帮助您从定义函数开始的基本示例:

def sum_product(arg1,arg2): #your function takes 2 arguments
    var1 = arg1 + arg2
    var2 = arg1*arg2
    return var1,var2 #returns two values
new_var1, new_var2 = sum_product(3,4) 

对于第一个示例,尝试将其修改为:

def LoadFiles():
    var = pd.read_csv('columns_description.csv', index_col=None)
    print("Columns Description")
    print(f"Number of rows/records: {var.shape[0]}")
    print(f"Number of columns/variables: {var.shape[1]}")
    return var

x = LoadFiles()
x.head()
于 2021-11-20T08:01:50.917 回答