1
私はPythonで私の問題を解決する方法を見つけようとします。私はpandas
を使用して、データフレームを作成してクエリからデータを保存しています。下の表に示すように、このデータフレームを「TimeDiff」列で拡張したいと考えています。時間の最初の要素から時間を減算する計算が機能しています。私の問題は、正しい値でこの計算されたデータを使って新しい列を作成する方法です。データフレーム内のforループの値を保存する
Time Temperature Humidity Pulse
2013-12-12 12:12:12 25 33 65
2013-12-12 12:12:15 26 30 67
2013-12-12 12:12:18 27 29 68
2013-12-12 12:12:22 28 32 64
Data frame should look like this:
Time Temperature Humidity Pulse TimeDiff
2013-12-12 12:12:12 25 33 65 0
2013-12-12 12:12:15 26 30 67 3
2013-12-12 12:12:18 27 29 68 6
2013-12-12 12:12:22 28 32 64 10
の時間差を計算するための私のコードとデータフレームに追加し、次のようになりますので、
TimeDiff
740
740
740
740
:このコードを実行する
df = pd.DataFrame([[ij for ij in i] for i in rows])
df.rename(columns={0: 'Time', 1: 'Temperature', 2: 'Humidity', 3: 'Pulse', 4:'MicValue'}, inplace=True);
df = df.sort(['Time'], ascending=[1]);
sLength = len(df['Time'])
for i in range(sLength):
diff = df['Time'][df.index[i]] - df['Time'][df.index[0]]
totalSeconds = diff.total_seconds()
# df = pd.DataFrame({'DateDiff': totalSeconds}, index=df.index)
# df['Diff'] = df['Diff'].map(totalSeconds)
は、次のような結果が得られますコードは実際のデータをデータフレームに書き出しません。それは、時間の計算の最後の要素を列全体に書き込むだけです。
そうそうを使用するには、それははるかに簡単です。 –
大変ありがとうございます。あなたのコードをスニッフィングしていただきありがとうございます。このようなエラーメッセージが表示されます: 'TypeError:入力は反復可能でなければなりません! ' – Daniel
列Timeがインデックスで、datetimeオブジェクトであることを確認してください。 'df.index = pd.to_datetime(df.Time) –