解析和处理表格.txt文件

时间:2017-05-30 03:22:12

标签: python python-3.x

我应该编写一个程序来读取文件,然后计算最大值和最小值以及高度和重量列的平均值,并添加一个额外的列,其中BMI根据每个高度和重量计算得出。 该文件的格式如下:

Name        Height(m)   Weight(kg)
Joe         1.82        72.57
Mary        1.60        63.50
Dion        1.90        90.71
Kayla       1.72        66.31
Jose        1.78        70.23
Sofia       1.63        65.12
Erik        1.98        92.21
Sara        1.57        65.77

输出应如下: expected output

我有非常基础知识(阅读文本文件)。我知道我接下来要做的是迭代每一列并将所有数据加起来以获得平均值等等。但我不知道如何为它编码。你不必为我编写完整的代码,因为我知道我没有多少,但如果有人可以指出我正确的方向/给我一个关于如何进行它的提示&#39 ; d非常有帮助。

data_file = open("data.txt", "r")

total = 0 
for line_str in data_file:  
    line_str = line_str.strip()
    total+=1 

3 个答案:

答案 0 :(得分:2)

您需要的方法是str's split()。接受一个字符串,就像文件中的一行一样,并将其分解为多个块。之后,您还需要使用float()来解析字符串块中的浮点数。

答案 1 :(得分:1)

使用Pandas库,解决方案很简单:

import pandas as pd

df = pd.read_csv("data.txt", delim_whitespace=True)
df['BMI'] = df['Weight(kg)'] / (df['Height(m)']**2)
df.describe()

答案 2 :(得分:0)

您的问题可以通过这种方式解决:

data_file = open("data.txt", "r")`

total = 0

for line_str in data_file:      
         [float(s) for s in line_str.split() if s.isdigit()]