Pandas数据帧,读取文件或在函数内设置新的数据帧



我正在尝试将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

相关内容

  • 没有找到相关文章

最新更新