首先,抱歉,如果这是已经回答我一直在寻找答案,但我没有找到一个方法来解决我的问题,谢谢你的惊人的支持。我正在学习Python,我在这里找到的所有信息都非常有用。
#Define a function to import data
def import_data():
data = pd.read_csv('Sales_Transactions_Dataset_Weekly.csv',sep=';',index_col=0,header=0)
df=data.iloc[:,0:52]
return df
我有一个。csv文件与列时间序列(w1,w2,w3…),我想只保留前52列在我的数据框架。为了做到这一点,我使用了这个函数:
之后我不能打印我的DataFrame,我想在我创建的另一个函数中使用它。但是我总是得到相同的错误:---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-159-e6cb9dbb3286> in <module>
1 import_data()
----> 2 print(df)
NameError: name 'df' is not defined
您只需要设置df
df = import_data()
您的方法很好,但问题是,您的函数返回的数据帧,您没有保存在函数调用后的变量中。学习Python中的Function Return
因此,当您尝试使用变量df
(这是局部函数import_data()
)显示数据框时,您将获得错误'df'未定义,这意味着它无法在当前范围内找到称为df的变量。阅读此链接以了解Python中的作用域
要解决这个问题,只需执行以下命令
df=import_data()
#import_data will return a dataframe which will be saved in df variable and then you can use this "df" variable to display your data
df