2016-07-12 3 views
3

pandasまたはpysparkデータフレームで次の操作を実行したいが解決策が見つからない。PandasまたはPysparkデータフレームの連続する列を引く

データフレーム内の連続する列から値を減算したいとします。

私が記述している操作は、下の画像で見ることができます。それが存在しないように、入力テーブルの最初の列は、その前の減算することができないように、出力データフレームは、習慣最初の列上の任意の値を有することに留意して

Input and Output Dataframe

ベア。

答えて

3

diffあなただけの1つのステップでこれを行うことができますのでaxisのparamを持っています

In [63]: 
df = pd.DataFrame(np.random.rand(3, 4), ['row1', 'row2', 'row3'], ['A', 'B', 'C', 'D']) 
df 

Out[63]: 
      A   B   C   D 
row1 0.146855 0.250781 0.766990 0.756016 
row2 0.528201 0.446637 0.576045 0.576907 
row3 0.308577 0.592271 0.553752 0.512420 

In [64]: 
df.diff(axis=1) 

Out[64]: 
     A   B   C   D 
row1 NaN 0.103926 0.516209 -0.010975 
row2 NaN -0.081564 0.129408 0.000862 
row3 NaN 0.283694 -0.038520 -0.041331 
+0

こんにちはエドを、piRSquared。おかげでたくさん – Demis

+0

心配しないで、あなたは1つの答えを受け入れることができますどちらかが最高ですあなたに最高です。 – EdChum

+0

@ EdChumの方が良いです、これを選択してください。私は 'axis = 1'オプションを忘れていました。二重転置を使うことは、文字を保存する私の習慣です。だから、私がこれを選ぶ唯一のメリットは、2文字の節約です。これを選択してください。 – piRSquared

1
df = pd.DataFrame(np.random.rand(3, 4), ['row1', 'row2', 'row3'], ['A', 'B', 'C', 'D']) 
df.T.diff().T 

enter image description here

+0

あなたはスターですこの1つは、同様に働い – Demis

関連する問題