如何解决根据特定列找出两个python数据框的差异
我想比较基于S/N
和Metric
列的数据帧,以查找从df2中的最新值更改的值:
df1
# S/N Age Metric
# 0 001 2.59 1.01
# 1 002 3.57 2.42
# 2 003 3.99 3.12
df2
# S/N Age Metric
# 0 001 2.46 4.29
# 1 001 2.50 2.46
# 2 001 2.54 2.47
# 3 002 1.78 1.24
# 4 002 1.82 2.42
# 5 003 3.57 1.91
# 6 003 3.61 2.47
# 7 003 3.65 1.24
我正在寻找以下数据框:
S/N Age Metric
0 001 2.59 1.01
2 003 3.99 3.12
数据
df1 = pd.DataFrame({
"S/N": ['001','002','003'],"Age": [2.59,3.57,3.99],"Metric": [1.01,2.42,3.12]
})
df2 = pd.DataFrame({
"S/N": ['001','001','003',"Age": [2.46,2.50,2.54,1.78,1.82,3.61,3.65],"Metric": [4.29,2.46,2.47,1.24,1.91,1.24]
})
解决方法
这里大约涉及两个步骤。首先,您需要比较df1
和df2
,然后基于该比较来过滤数据。
第1步:比较
要根据列df1
将df2
与Metric
进行比较,请运行:
df1['Metric'] != df2['Metric']
0 True
1 False
2 True
3 False
第2步:过滤
在pandas中,可以使用仅包含True
或False
值的pandas系列(“单列数据框”)过滤行:
inds = df1['Metric'] != df2['Metric']
df2.loc[inds,:]
S/N Age Metric
# 0 001 2.46 4.29
# 2 003 2.00 2.47
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。