2017-06-16 14 views
0

cpuの性能テストを行い、csv形式のデータセットを取得しました。データから、5つの異なるイベントがあり、それぞれのイベントを並べ替えて、それぞれの開始時刻を&終了時刻として計算します。私はこのデータ分析のためにPythonでPandasを使用しようとしましたが、私はまだそれを行う方法を知りません。以下は私が今までに書いた非常に基本的なコードです。異なるグループのデータを並べ替え、Pandasの開始時刻と終了時刻を計算する

import pandas as pd 
from pandas import DataFrame 
import os, sys 

df = pd.read_csv('new.csv') 

col_Time = df[df.columns[0]] 
col_Data = df[df.columns[1]] 

## example_time = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] 
## example_data_in_watts=[11.2, 10.3, 10.1, 21.2, 20.3, 22.1, 12.3, 10.7, 
##      11.2, 23.6, 24.3, 25.1, 10.2, 11.3, 10.5] 

## As above, each element in example_data_in_watts corresponds to element in 
## example_time. From this data, there're 2 events happened when the watts 
## are ~21w and ~24w. My desired output will be to calculate the start & end 
## time for 21w & 24w, which are 3(sec) and 3(sec). 

あなたは上記を参照することができるように、私は2つの異なる列を表現するために2つの変数を割り当てる:一方は、試験時間(単位:秒)のためであり、他のテストデータ(:ワット単位)のためのものです。私が考えることの1つの方法は、おそらくイベントを整理するためにk-meansメソッドを使用することです。しかし、私がそれをしても、そこから開始時間&の終了時刻を得ることができるかどうかはわかりませんか?

イベントを整理し、開始時刻を計算する方法がわかっている場合は、&終了時刻をお知らせください。たくさんありがとう!

+0

あなたは例の入力と所望の出力を含めることができればあなたを助けるために非常に簡単になります。 – zipa

+0

thx! :)私はちょうど私のコードの上記の入力例と希望の出力を含んでいます。 – ryan9025

答えて

0

あなたの例から、これは最も簡単な解決策としてようだ:あなたがデータを浮動し、あなたの例によると、ここで何ができるかであるしている場合は

watts=[10,10,10,21,21,21,10,10,10,23,23,23,10,10,10] 

result = {k : watts[:i+1].count(k) for i, k, in enumerate(watts) if k != 10} 

EDIT

watts=[10.2, 10.3, 10.1, 21.2, 21.3, 21.1, 10.3, 10.7, 10.2, 23.6, 23.3, 23.1, 10.2, 10.3, 10.5] 
watts = map(int,watts) 

result = {k : watts[:i+1].count(k) for i, k, in enumerate(watts) if k != 10} 

編集編集

変動が2.5であることを考慮すると私は、これはトリックを行うことができると思います。

watts=[11.2, 10.3, 10.1, 21.2, 20.3, 22.1, 12.3, 10.7, 11.2, 23.6, 24.3, 25.1, 10.2, 11.3, 10.5] 

watts = map(lambda x: x + x % 5, map(lambda x: x - x % 2.5, map(int, watts))) 

result = {k : watts[:i+1].count(k) for i, k, in enumerate(watts) if k != 10} 
+0

ありがとう!しかし、データセットは実際にははるかに複雑です。なぜなら、電力は大きく異なるからです。それで[10.1,10.3,10.2]のようになり、[21.1,21.4,21.5]などにジャンプします。 – ryan9025

+0

編集を確認してください。 – zipa

+0

ありがとう! :)しかし、申し訳ありませんが、私はまだ例を明確にしていません。上記の私の編集コードをチェックしてください。具体的には、私はこれらの2つのイベント(グループ)を整理して、どれくらいの時間がかかったのかを数える方法があるのだろうか?生データの量は非常に膨大であり、実際には値にはわずかな変動しかないためです。 – ryan9025

関連する問題