2017-02-24 9 views
1

最初に分データを時間データに平均化するPythonコードを作成しています。次に、時間別データの2つの列の値を乗算し、乗算された値で新しい列を作成します。私は乗算のステップに固執しています。Pythonコードで2つの列を掛けて、新しい列を値で作成する

import pandas as pd 
import numpy as np 

df = pd.read_csv("inputfile.csv", index_col="DateTime", parse_dates=True) 
df = df.resample('1H').mean() 
df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq="1H")) 
df.to_csv('outputfile.csv', index=True, index_label="DateTime") 

データ時間平均

DateTime  current  voltage 
11/1/2014 0:00 3.366184207 12.1758535 
11/1/2014 1:00 3.361604775 12.1827364 
11/1/2014 2:00 3.358049691 12.17596822 
11/1/2014 3:00 3.354833198 12.1827364 
11/1/2014 4:00 3.361096907 12.1827364 
11/1/2014 5:00 3.361096907 12.1827364 
11/1/2014 6:00 3.366344918 15.72258904 
11/1/2014 7:00 3.419681019 1495.925115 
11/1/2014 8:00 3.663316184 1870.538086 
11/1/2014 9:00 4.369056237 1925.408667 
11/1/2014 10:00 4.404945809 1938.888254 
11/1/2014 11:00 4.711192238 1994.759897 
11/1/2014 12:00 4.82263279 1995.281601 
11/1/2014 13:00 4.428242773 1961.089536 
11/1/2014 14:00 4.038091129 1895.686707 
11/1/2014 15:00 4.04098199 1904.352924 
11/1/2014 16:00 3.748518044 1852.646768 
11/1/2014 17:00 3.397967499 1554.434254 
11/1/2014 18:00 3.371380174 56.24243593 
11/1/2014 19:00 3.375613815 12.18733199 
11/1/2014 20:00 3.369686692 12.18239812 
11/1/2014 21:00 3.367993271 12.18351949 
11/1/2014 22:00 3.374089682 12.17048603 
11/1/2014 23:00 3.367485231 12.18946266 

から私は、電圧欄で現在の列を乗算し、それらの値を持つ新しい列を作成したいと思います。

+1

のようなあなたの現在の列を名前の場合、これは動作します、あなたは 'DF [ '電圧'] * [ '現在']' DFを試してみたのですか? – EdChum

答えて

3

df[newcolumn] = df['current']*df['voltage']
は動作します。
変数としてnewcolumnを指定することができます。

def getPower(df, newColumn, numOfCol): 
    for i in range(numOfCol): 
     current = 'current#%d' % (i+1) 
     voltage = 'voltage#%d' % (i+1) 
     power = 'power#%d' % (i+1) 
    df[power] = df[current]*df[voltage] 

getPower(df, 'Power', numOfCols) would create the column. 

EDIT:あなたは'current1', current2',...

3

あなたはこのような何かを試すことができます。

df['Power'] = df['current']*df['voltage'] 
+0

しかし、これはとにかくこれを書くには、列ヘッダーに入力せずに、列番号を乗算するだけです。 – acb

+0

@acbどういう意味ですか? – AsheKetchum

+0

私の実際のデータで言い訳に混乱している申し訳ありませんが、現在の列は約10列あります。私は各列に電圧を掛けて、10個の新しい列を作成したいと思います。 – acb

関連する問題