python - 减去python中的匹配行

标签 python

我有两个文件,每个文件都包含一个带有“time”的列和一个带有“id”的列,如下所示:

文件 1:

time     id
11.24    1
11.26    2
11.27    3
11.29    5
11.30    6

文件 2:

time     id
11.25    1
11.26    3
11.27    4
11.31    6
11.32    7
11.33    8

我正在尝试编写一个 python 脚本,该脚本可以将具有匹配 ID 的行的时间相互减去。这些文件的长度不同。

我尝试使用 set(id's of file 1) & set(id's of file 2) 来获取匹配的 id,但现在我卡住了。非常感谢任何帮助,谢谢。

最佳答案

列表理解可以很容易地做到这一点:

#read these from file if you want to, included in this form for brevity
F1 = {1: 11.24, 2: 11.26, 3:11.27, 5:11.29, 6:11.30}
F2 = {1:11.25, 3:11.26, 4:11.27, 6:11.31, 7:11.32, 8:11.33}

K1 = set(F1.keys())
K2 = set(F2.keys())

result = dict([ (k, F1[k] - F2[k]) for k in (K1 & K2)])
print result

这将输出:

{1: -0.009999999999999787, 3: 0.009999999999999787, 6: -0.009999999999999787}

编辑:正如 mhawke 指出的,最后一行可以是:

result = {k: F1[k] - F2[k]) for k in (K1 & K2)}

我完全忘记了听写理解。

关于python - 减去python中的匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577619/

相关文章:

python - 如何用python计算极导数?

python - 遍历目录并根据特定顺序附加到字典

python - 为客户域生成 SSL 证书并与 Python Flask 集成

python - For 循环避免在字典中写入最后一个键

python - 通过 pyodbc 和 Linux(使用 Docker)访问 i Series AS400 数据库时出现问题

python - Django 查询集 : limiting results grouping by certain field

python - 计算组中元素之间的差异

python - 将函数应用于 pandas 系列时结果不正确

python - 在 Python 中将行附加到具有额外换行符的现有文件

python - LeetCode 509 : Fibonacci Number "int object not subscriptable"