我正在尝试将3个CSV文件读取到3个Panda 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笔记本错误
在第二种方法中,我试图用数据集中的一些合并信息创建一个新的数据框架。由于变量似乎不再可用,问题再次出现。
# 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有点陌生,代码是一个示例,不代表实际数据,在函数中,一个示例是单列。我在这个派生数据集中有多个列要根据更改进行刷新,因此采用了函数方法。
定义函数时,如果要使用函数中定义的变量,则应以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()
尝试以下代码
# 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