2017-08-16 5 views
0

2つの異なるデータフレームの間で減算を行う必要があります。異なる長さの2つのパンダデータフレームを引く

Iは以下のコードを試していた:。

df_sw['Apropriacao_total'] = df_sw_ant.merge(df_sw, how='left', right_on=['Data posicao', 'Ativo', 'Data vencimento'], 
       left_on=['Data posicao', 'Ativo', 'Data vencimento']) 

[ 'Apropriacao_conjunta']をサブ([ 'Apropriacao']、軸= 1)

以下

、サンプル・データ・フレームサンプル:

df_swColsは:6行:62

Data_posicao Ativo Data_vencimento Apropriacao Apropriacao_conjunta 
0 2017-07-03 RXU7  2017-09-07  -631.17    -631.17 
1 2017-07-04 RXU7  2017-09-07  -828.59    -828.59 
... 
22 2017-07-05 GCQ7  2017-07-31  1820.06    1820.06 
... 
53 2017-07-18 CNHBRL  2017-09-28  1431.82    1431.82 

df_sw_antColsは:6行:32

 Data_swap Data_posicao Ativo Data_vencimento Apropriacao_swap 
0 2017-07-03 2017-06-30 RXU7  2017-09-07   -333.66 
1 2017-07-04 2017-07-03 RXU7  2017-09-07   -631.17 
... 
22 2017-07-05 2017-07-04 GCQ7  2017-07-31   720.06 
... 
29 2017-07-20 2017-07-19 CNHBRL  2017-09-28   -157.30 

質問: 減算(df_sw [ 'Apropriacao_conjunta'] - df_sw_ant [ 'Apropriacao_swapを'])を実行する方法:

df_sw['Data_posicao'] = df_sw_ant['Data_swap']df_sw['Ativo'] = df_sw_ant['Ativo']df_sw['Data_vencimento'] = df_sw_ant['Data_vencimento']

減算は、あなたが次のことを試してみて、それはあなたのために働くかどうかを確認することができ軸= 1

答えて

0

で行われます。

# merge and save to new dataframe 
df_merged = df_sw_ant.merge(df_sw, how='left', right_on=['Data posicao', 'Ativo', 'Data vencimento'], 
      left_on=['Data posicao', 'Ativo', 'Data vencimento']) 

# save subtracted result to a new column 
df_merged['Sub_Value'] = df_merged['Apropriacao_conjunta'] - df_merged['Apropriacao'] 

その後、df_mergedSub_Value列が2列の減算結果を持っています。

関連する問題