从另一个define函数获取要在python3中的另一个define函数中读取的变量时出现名称错误

2024-04-26 12:18:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何解决我遇到的问题,我该如何解决

我正在使用的python代码:

import plotly
import plotly.plotly as py
import plotly.graph_objs as go
import plotly.figure_factory as FF
import numpy as np
from datetime import date,time,datetime
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt

def readcsv(x): #def function to read csv files based on input below
    Data = pd.read_csv(x, parse_dates=['Time_Stamp'], infer_datetime_format=True)
    Data['Date'] = Data.Time_Stamp.dt.date 
    Data['Time'] = Data.Time_Stamp.dt.time 

    Data['Time_Stamp'] = pd.to_datetime(Data['Time_Stamp']) 
    print(Data[1:6])

readcsv('MainD.csv')

def selTimestamprange(dtStart, dtEnd, Data):
        timestamprange = (Data['Time_Stamp'] > dtStart) & (Data['Time_Stamp'] <= dtEnd)
        TimeRange = Data.loc(timestamprange)
        TimeRange.plot(x='Time_stamp', y='AC_Input_Current', style='-', color='black')

date_string_start = '2017-06-13 16:00:00'
date_string_end = '2017-06-13 16:40:00'
dtStart = datetime.strptime(date_string_start, '%Y-%m-%d %H:%M:%S')
dtEnd = datetime.strptime(date_string_end,'%Y-%m-%d %H:%M:%S')

selTimestamprange(dtStart, dtEnd, Data)

我的错误:

NameError Traceback (most recent call last) in () 10 #print(type(dtStart)) <-- check if dtStart has been converted to datetime type 11 ---> 12 selTimestamprange(dtStart, dtEnd, Data)

NameError: name 'Data' is not defined


Tags: csvtoimportdatadatetimedatestringtime
1条回答
网友
1楼 · 发布于 2024-04-26 12:18:23

Data是局部变量,仅在函数readcsv(x)中可用,您可以在函数中返回它并将结果赋给变量Data,然后可以使用变量Data。像这样:

def readcsv(x): #def function to read csv files based on input below
    Data = pd.read_csv(x, parse_dates=['Time_Stamp'], infer_datetime_format=True)
    Data['Date'] = Data.Time_Stamp.dt.date 
    Data['Time'] = Data.Time_Stamp.dt.time 

    Data['Time_Stamp'] = pd.to_datetime(Data['Time_Stamp']) 
    print(Data[1:6])
    return Data

Data = readcsv('MainD.csv')

相关问题 更多 >