我有一个大型的实验日志文件(.txt),包含多达100,000个条目,其结构如下:
ROUTINE TEMPERATURE VOLTAGE WAVELENGTH
_______________________________________________
CHANGE T 75 0 560
CHANGE T 80 0 560
CHANGE T 85 0 560
CHANGE T 90 0 560
OSL 75 20 570
OSL 75 20 580
OSL 75 20 590
OSL 75 20 600
CHANGE T 75 0 560
CHANGE T 80 0 560
CHANGE T 85 0 560
CHANGE T 90 0 560
我使用来自 pandas 的 read_table 将日志文件加载到python中。我想基于第一列的值将结果数据框分成较小的数据框。结果应如下所示:
**DATAFRAME 1:**
CHANGE T 75 0 560
CHANGE T 80 0 560
CHANGE T 85 0 560
CHANGE T 90 0 560
**DATAFRAME 2:**
OSL 75 20 570
OSL 75 20 580
OSL 75 20 590
OSL 75 20 600
**DATAFRAME 3:**
CHANGE T 75 0 560
CHANGE T 80 0 560
CHANGE T 85 0 560
CHANGE T 90 0 560
首先,我尝试使用第一列值改变的指数来拆分它们:
indexSplit = [] # list containing the boundry indices
prevRoutine = log['ROUTINE'][0] # log is the complete dataframe
i = 1
while i < len(log):
if prevRoutine != log['ROUTINE'][i]:
indexSplit.append(i)
prevRoutine = log['ROUTINE'][i]
然而,考虑到日志文件的大小,用这种方式需要花费大量时间(显然)。我想知道是否有一种优雅的方法可以使用pandas来完成这个任务?我经常遇到的问题是第一列的值在不止一个系列中使用。我总是以数据帧1和数据帧3作为一个整体。
pandas.DataFrame.ne
是什么作用? - MMFfor
10M` - jezrael