python - Pandas 从查找 DataFrame 列中减去 DataFrame 列

标签 python pandas dataframe subtraction lookup-tables

给定一个数据框 test和另一个数据框 lookup

test = pd.DataFrame( [['a',1],
                      ['a',2], 
                      ['b',9]], columns = ['id', 'n'])

lookup_mins = pd.DataFrame( [['a',1], 
                             ['b',9], 
                             ['c',7]] , columns = ['id', 'n'])

尝试减去每个值 ntest按值 n与匹配idlookup_mins使用

s = lookup_mins.groupby(['id'])['n'].transform('min')
test['n2'] = test['n'] - s

预期结果,

id n n2
a  1 0
a  2 1
b  9 0

但是却得到了

id n n2
a  1 0
a  2 -7
b  9  9

如何减去testlookup_mins得到如上所述的预期结果?

最佳答案

使用Series.map聚合 min:

s = lookup_mins.groupby(['id'])['n'].min()
test['n2'] = test['n'] - test['id'].map(s)
print (test)
  id  n  n2
0  a  1   0
1  a  2   1
2  b  9   0

关于python - Pandas 从查找 DataFrame 列中减去 DataFrame 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66312961/

相关文章:

python - 在 txt 中查找分隔符以使用 Python 转换为 csv

python - 将 Pandas 数据框单元格转换为列表

python-3.x - 从多个特定日期选择 pandas 中的数据

python - 将列表的字符串表示形式转换为数据框列中的列表

python - django - 如何将表的记录与来自另一个表的计算计数值绑定(bind)

python - 具有多个约束的相关字段上的 Django 查询集

python - 查询在查询浏览器中运行良好,但在 python 代码中运行不佳

python - 用列拆分 Pandas 数据框

python-3.x - 计算来自多个数据框列的唯一值

python - Pyramid 的 add_static_view 是如何工作的?