如何使用Python将同一文件中的一列除以另一列?

2024-05-15 14:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很长的假期文件.txt超过1000000行的,包含两列,如下所示:

photon  electron
1000     100
1010     122
2000     50
1520     190
....     ....

我要第三栏:电子/光子 在Python中怎么可能呢?你知道吗


Tags: 文件txt电子光子electronphoton
1条回答
网友
1楼 · 发布于 2024-05-15 14:28:12

使用^{}的一个选项:

import pandas as pd

with open('file.txt', 'r') as f:
    df = pd.read_csv(f, sep='\s+', header=0)

df['e/p'] = df['electron'] / df['photon']

print(df)

结果:

   photon  electron       e/p
0    1000       100  0.100000
1    1010       122  0.120792
2    2000        50  0.025000
3    1520       190  0.125000

使用标准库,没有pandas的结果相同:

import csv

d = []
with open('file.txt', 'r') as f:
    data = list(csv.reader(f, delimiter=' ', skipinitialspace=True))
    d += [data[0]]
    d[0].append('e/p')
    for l in list(data)[1::]:
        l.append(round(float(l[1])/float(l[0]), 6))
        d.append(l)

for i in d:
    print '{:<9} {:<9} {:<9}'.format(*i)

结果:

photon    electron  e/p      
1000      100       0.1      
1010      122       0.120792 
2000      50        0.025    
1520      190       0.125 

python2或python3所需的格式。你知道吗

相关问题 更多 >