python pandas dataframe变量未更新

时间:2018-08-09 19:26:26

标签: python pandas dataframe

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

  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)

本质上,“日期”列为我提供了正确的每一行日期,而“时间”列仅为我提供了相同的值。

1 个答案:

答案 0 :(得分:0)

事实证明,这不是错误,而是奇怪的巧合。我需要处理的文件正确地解析了小时,但是它们是以随机顺序进行处理的,恰好碰巧前两个文件的小时数都相同。因此它看起来好像没有更新。