是否可以创建一个唯一的ID来重复测量时间序列中的类?

时间:2016-08-23 01:54:07

标签: pandas time-series repeat unique-index

我有一个带有24小时时间序列的csv文件,其中包含来自7个不同阀门(solenoid vales)的测量值,每10分钟更换一次(阀门1,2,3,4,5,6,1,2,3 ,4,5,6,7,然后再从1开始)。我想在每次阀门测量时分配一个唯一的Measurement ID(1,2,3,4,5,6,7,8,9,10,11,12,13 ...)以便我可以在后续步骤中提取每个测量间隔的最后10秒(=行)。

大熊猫的理论是否可行?我试图找到一个可以应用的功能,但未成功。

我从我的pandas数据框df

中提取了这个
df=pd.read_csv(file)


Out[61]: 
                DATE_TIME  solenoid_valves       N2O        CH4  CO2_ppm
0     10/08/2016 12:04:56         7.000000  0.272953   1.810904      NaN
....
8740  10/08/2016 14:30:36         2.000000  0.349828  29.527575   352.32
8741  10/08/2016 14:30:37              NaN       NaN        NaN   352.61
8742  10/08/2016 14:30:38         2.000000  0.349729  29.508612   352.12
8743  10/08/2016 14:30:39         2.000000  0.349655  29.501180   352.88
8744  10/08/2016 14:30:40         2.200969  0.349388  29.492402   353.16
8745  10/08/2016 14:30:41         2.600484  0.347622  29.483979   352.44
8746  10/08/2016 14:30:42         3.000000  0.341632  29.476394   352.96
...
56512   11/08/2016 3:46:48         3.000000  0.300992  8.988894   420.42
56513   11/08/2016 3:46:49         3.000000  0.304847  8.990150   420.60
56514   11/08/2016 3:46:50         3.143836  0.302620  8.991343   420.89
56515   11/08/2016 3:46:51         4.000000  0.295150  8.992416   421.90
56516   11/08/2016 3:46:52         4.000000  0.286783  8.993618   421.90
56517   11/08/2016 3:46:53         4.000000  0.285636  8.994677   421.57
56518   11/08/2016 3:46:54              NaN       NaN       NaN   422.47
56519   11/08/2016 3:46:55         4.000000  0.276346  8.993526   422.75
56520   11/08/2016 3:46:56         4.000000  0.277580  8.992645   423.02

我发现了以下挑战:

  • 当阀门切换时(参见第8744,8745或56514行),一个或多个阀门编号往往带有十进制数字。我想排除那些,我是否必须先删除它们?
  • 某些行具有应忽略的缺失值(NaN)。

我不确定,如果我想要的是可能的,但它会彻底改变我的数据分析,所以任何输入都会受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

删除任何缺少值的行:

df = df.dropna()

然后,通过将列与其转换后的值进行比较,仅保留整数:

df = df[df.solenoid_valves == df.solenoid_valves.astype(int)]