Python 如何在一个文件中减去两个单独的列
我有一个文件如下所示:Python 如何在一个文件中减去两个单独的列,python,linux,Python,Linux,我有一个文件如下所示: 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 100
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
分隔符是什么?堆栈溢出不是代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。