gpt4 book ai didi

python - 如何减去文件中的两个单独的列

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:49 25 4
gpt4 key购买 nike

我有一个如下所示的文件:

scaf12446   275     482     loc.04759  .       +       9.99087136654
scaf9003 58436 58745 loc.36424 . + 9.98867551051e-07
scaf6164 41519 44781 loc.29229 . - 9.97790659076e-07
scaf20 64796 100635 loc.14273 . - 9.97726500173
scaf19280 12335 12568 loc.13668 . + 9.95702976886
scaf8877 30882 32362 loc.36113 . - 9.94423702955e-08

我想从第二列中减去第三列并打印出值。所以生成的文件应该是这样的:

scaf12446   207     loc.04759  .       +       9.99087136654
scaf9003 309 loc.36424 . + 9.98867551051e-07
scaf6164 3262 loc.29229 . - 9.97790659076e-07
scaf20 35839 loc.14273 . - 9.97726500173
scaf19280 233 loc.13668 . + 9.95702976886
scaf8877 1480 loc.36113 . - 9.94423702955e-

这个表很长 - 有没有一种简单的方法可以简单地从第 2 列中减去第 3 列? Linux 快捷方式将是理想的选择。

最佳答案

使用 python 和 pandas

#! /usr/bin/env python3

"""
sub_col.py

Call as
$ python sub_col.py file
"""

import sys
import pandas as pd

def main(file):
df = pd.read_csv(file, delim_whitespace=True, header=None)
df[2] -= df[1]
del df[1]
df.to_csv(file, header=False, index=False, sep='\t')

if __name__ == '__main__':
main(sys.argv[1])

输出数据帧:

scaf12446   207 loc.04759   .   +   9.990871366539999
scaf9003 309 loc.36424 . + 9.98867551051e-07
scaf6164 3262 loc.29229 . - 9.97790659076e-07
scaf20 35839 loc.14273 . - 9.97726500173
scaf19280 233 loc.13668 . + 9.95702976886
scaf8877 1480 loc.36113 . - 9.944237029550001e-08

关于python - 如何减去文件中的两个单独的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50270685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com