2017-03-03 49 views
2

私は、月の午前12時から午前3時までの時間単位のデータの平均値を持つpandasデータフレームを使ってPythonでコードを作成してから、各列からその月間平均を差し引いています。このコードは、csvファイルからデータを読み取ります。データパンダの列から平均値を引くDataFrame

DateTime   C1  C2  C3  C4  C5  V 
11/1/2014 0:00 1.12 0.96 1.11 0.95 0.93 4.06 
11/1/2014 1:00 1.12 0.96 1.11 0.95 0.93 4.06 
11/1/2014 2:00 1.12 0.95 1.11 0.95 0.93 4.06 
11/1/2014 3:00 1.12 0.95 1.11 0.95 0.93 4.06 
11/1/2014 4:00 1.12 0.95 1.11 0.95 0.93 4.06 
11/1/2014 5:00 1.12 0.95 1.11 0.95 0.93 4.06 
11/1/2014 6:00 1.12 0.95 1.11 0.96 0.93 5.24 
11/1/2014 7:00 1.14 0.96 1.12 0.98 0.95 498.64 
11/1/2014 8:00 1.22 1.04 1.20 1.05 1.02 623.51 
11/1/2014 9:00 1.46 1.28 1.43 1.27 1.25 641.80 

サンプルは、だから私は平均を取得するために使用していたコードは、このコードは私に列1のために月の12-3amからの平均を与える

df.ix[:,1:5].between_time('0:00', '3:00').resample('1M').mean() 

です-5。今度は、これらの平均値を列1-5の各値から差し引く方法はありますか?

+0

'' 'df.ix [:, 1:5] = df.ix [:, 1:5] - your_res.values'''で行う必要があります。 – TrigonaMinima

+0

私のデータは変数dfとして保存されます。 (df - df.ix [:、1:5]のようなものを設定しようとすると、たくさんのNaN値が得られます。 – acb

答えて

2

これはあなたが探しているものですか?

month_av = df.ix[:,1:5].between_time('0:00', '3:00').resample('1M').mean() 
df.ix[:, 1:5] = df.ix[:, 1:5] - month_av.values 
+0

私はこれが動作すると思います。これらの値をcsvファイルに追加して他の値を置き換えるにはどうすればよいですか? – acb

+0

パンダのデータフレームがどのように見えたら、df.to_csv(filename)を実行すれば、同じファイル名を使用した場合に古いcsvを上書きすることができます。 – Kewl

+0

これは唯一の問題です。 csvは、減算をしなかった列を削除します。これらの列をデータ内に保持しながら、他の列を引くことはできますか? – acb

関連する問題