如何解决Pandas 从查找 DataFrame 列中减去 DataFrame 列
test = pd.DataFrame( [['a',1],['a',2],['b',9]],columns = ['id','n'])
lookup_mins = pd.DataFrame( [['a',9],['c',7]],'n'])
尝试用 n
中的值 test
减去 n
中的每个值 id
并使用 lookup_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
反而得到了
test
如何减去 lookup_mins
和 LcounterCar,LcounterTruck,LcounterBus,LcounterMotorcycle,LcounterVan,Ltime,RcounterCar,RcounterTruck,RcounterBus,RcounterMotorcycle,RcounterVan,Rtime
1,2021-02-22 13:22:00,2,2021-02-22 13:23:00,3,1,4,2021-02-22 13:24:00,5,2021-02-22 13:25:00,6,2021-02-22 13:27:00
以获得如上所述的预期结果?
解决方法
将 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。