python dataframe变量未更新

2024-09-29 17:22:56 发布

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

我正在创建一个程序,从一个不包含时间戳但需要时间戳的预格式化文件中提取一些数据。我知道以下事情:

  1. 文件名,包括记录数据的时间。我可以假设第一个数据点是在一小时开始时收集的,我可以解析它。你知道吗
  2. 我知道每个数据点都是以64Hz的频率采集的,所以我知道每个数据点之间的时间差。你知道吗

当我编写代码块来提取这些数据时,我遇到了这样一个问题:我的日期正在更新,但我的时间没有更新。结果是我的所有数据都有正确的日期,但时间相同。我希望这只是由于睡眠不足而遗漏了一些合乎逻辑的东西,但是如果有人能指出我的代码的问题,我会很感激的。你知道吗

#Paths for files to process
advpath = '/Users/stnixon/Dropbox/GradSchool/Research/EddyCovarianceData/data/palmyra2016/**'

#Create list of files to process
advfiles = glob.glob(os.path.join(advpath,'*.A16'))

#create data frames, load files, concatenate, and sort adv files and dfetfiles
advframe = []

for f in advfiles:
    advdf = pd.read_csv(f, sep='\s+', names=['ID','u','v','w','u1','v1','w1','ucorr','vcorr','wcorr'], usecols=[0,1,2,3,7,8,9])
    file_now = os.path.basename(f)
    print(int(file_now[4:6]))
    advdf['Time'] = pd.to_datetime(int(file_now[4:6]),unit='h')
    advdf['Date'] = pd.to_datetime('2016'+file_now[0:2]+file_now[2:4])
    advframe.append(advdf)
advdata = pd.concat(advframe)

实际上,Date列为每行提供正确的日期,而Time列只为所有行提供相同的值。你知道吗


Tags: to数据代码fordata时间filesprocess
1条回答
网友
1楼 · 发布于 2024-09-29 17:22:56

原来这不是一个bug,而是一个奇怪的巧合。我需要处理的文件正确地解析了小时数,但它们是以随机顺序处理的,碰巧前两个和后两个文件的小时数都是一样的。所以它在终端里看起来好像没有更新。你知道吗

相关问题 更多 >

    热门问题