【发布时间】:2019-09-23 15:15:01
【问题描述】:
我有一个包含日期列的文件。我想检查日期时间列是否在特定范围内。(例如,我每天得到 5 个文件(我无法控制),我需要在其中选择一个包含几乎在午夜阅读的文件。
该特定文件中的所有行都会延迟一分钟。(所有读数,因此不超过一分钟的间隔)
使用 panda ,我加载日期列如下;
def read_dipsfile(writer):
atg_path = '/Users/ratha/PycharmProjects/DataLoader/data/dips'
files = os.listdir(atg_path)
df = pd.DataFrame()
dateCol = ['Dip Time']
for f in files:
if(f.endswith('.CSV')):
data = pd.read_csv(os.path.join(atg_path, f), delimiter=',', skiprows=[1], skipinitialspace=True,
parse_dates=dateCol)
if mid_day_check(data['Dip Time']): --< gives error
df = df.append(data)
def mid_day_check(startTime):
midnightTime = datetime.datetime.strptime(startTime, '%Y%m%d')
hourbefore = datetime.datetime.strptime(startTime, '%Y%m%d') + datetime.timedelta(hours=-1)
if startTime <= midnightTime and startTime>=hourbefore:
return True
else:
return False
在上面的代码中,如何将列传递给我的函数? 目前我收到以下错误;
midnightTime = datetime.datetime.strptime(startTime, '%Y%m%d')
TypeError: strptime() argument 1 must be str, not Series
如何使用 panda 日期列检查时间范围?
【问题讨论】: