我有兩個 Pandas DataFrames 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中的值,如果resp。條件值/列相同。
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
我怎樣才能做到這一點?
非常感謝您的回復!
露西
uj5u.com熱心網友回復:
使用pd.merge有how='left':
In [239]: res = df.merge(df_0, on='condition', how='left').fillna(0)
In [241]: res['value'] = (res.value_x - res.value_y).astype(int)
In [244]: res.drop(['value_x', 'value_y'], 1, inplace=True)
In [251]: res
Out[251]:
condition value
0 1 0
1 2 -1
2 3 3
uj5u.com熱心網友回復:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/334467.html
上一篇:熊貓選擇日期行
下一篇:以這種方式組合熊貓資料框
