我得到了两个Pandas dataframe df和df_0:
df = pd.DataFrame({'condition': [1, 2, 3],
'value': [1, 2, 3]})
df_0 = pd.DataFrame({'condition': [1, 2],
'value': [1, 3]})
condition value
0 1 1
1 2 2
1 3 3
condition value
0 1 1
1 2 3
我想从df中的值(列)中减去(-=)df_0中的值,如果对应。条件值/列相同
Pseudo code
df_desired_result = pd.DataFrame({'condition': [1, 2, 3],
'value': [0, -1, 3]})
condition value
0 1 0
1 2 -1
2 3 3
我怎样才能做到这一点?
提前感谢您的回复!
露西
Pandas执行索引相关的算术运算。只需将"条件"设置为索引,然后填充NaN值
import pandas as pd
import numpy as np
df = pd.DataFrame({'condition': [1, 2, 3],
'value': [1, 2, 3]})
df_0 = pd.DataFrame({'condition': [1, 2],
'value': [1, 3]})
df_desired_result = df.set_index('condition')-df_0.set_index('condition').reindex(df.condition,fill_value=0)
print(df_desired_result)