Search code examples
dataframerowsubtraction

Subtracting the 2nd column of the 1st Dataframe to the 2nd column of the 2nd Dataframe based on conditions


I have 2 dataframes with 2 columns each and with different number of index. I want to subtract the 2nd column of my 2nd dataframe to the 2nd column of my 1st dataframe, And storing the answers to another dataframe.. NOTE: Subtract only the values with the same values in column 1. e.g.

df:
           col1      col2
29752   35023.0   40934.0    

subtract it to

df2:
           c1         c2
962   35023.0   40935.13  

Here is my first Dataframe:

           col1      col2
0      193431.0  40955.41
1      193432.0  40955.63
2      193433.0  40955.89
3      193434.0  40956.31
4      193435.0  40956.43
...       ...
29752   35023.0  40934.89
29753   35024.0  40935.00
29754   35025.0  40935.13
29755   35026.0  40934.85
29756   35027.0  40935.18

Here is my 2nd dataframe;

          c1        c2
0     194549.0  41561.89
1     194550.0  41563.96
2     194551.0  41563.93
3     194552.0  41562.75
4     194553.0  41561.22
..       ...       ...
962  35027.0  41563.80
963  35026.0  41563.18
964  35025.0  41563.87
965  35024.0  41563.97
966  35023.0  41564.02

Solution

  • You can iterate for each row of the first dataframe, if the col1 of the row is equal to col1 of df2[i], then subtract the value of each column

    for i, row in df1.iterrows():
    if(row["col1"]  == df2["col1"][i]):
        diff = row["col2"] - df2["col2"][i]
        print(i, diff)