我需要在两个不同的数据帧之间进行减法。
我试过以下代码:
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']。sub([' Apropriacao'],轴= 1)
下面是样本数据框样本:
df_sw Cols: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_ant Cols: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 :(得分: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']
然后,Sub_Value
中的df_merged
列将包含减去两列的结果。