【问题标题】:How to add and print numbers from a tokenized txt file [duplicate]如何从标记化的 txt 文件中添加和打印数字 [重复]
【发布时间】:2019-02-05 14:29:46
【问题描述】:
import csv

csv_file = 'Annual Budget.csv'
txt_file = 'annual_budget.txt'
with open(txt_file, 'w') as my_output_file:
with open(csv_file, 'r') as my_input_file:
    reader = csv.reader(my_input_file)
    for row in reader:
        my_output_file.write(" ".join(row)+'\n')
        data = []

with open(r'annual_budget.txt', 'r') as f:
 reader = csv.reader(f)
 header = next(reader) # this will yield first row i.e columns
 for line in reader:
     rowdata = map(float, line)
     data.extend(rowdata)
 print(sum(data)/len(data))

我正在尝试将我的 CSV 文件中的列总和打印成一个 txt 文件。在我告诉我的代码绕过第一行(这将是我的文件中的字符串标题)它会抛出一个错误,说它无法将字符串转换为浮点数。

输出:

data.extend(rowdata) ValueError: could not convert string to float:

【问题讨论】:

    标签: python-3.x math text sum multiple-columns


    【解决方案1】:

    csv文件为例:

    另存为example.csv

    读入csv文件:

    import pandas as pd   
    df=pd.read_csv('example.csv',header=None)
    

    将每列的数据放入一个 numpy 数组并打印每列的总和,同时迭代文件的列:

    import numpy as np
    for x in range(len(df.columns)):
        columndata=np.asarray(df[x])
        print(sum(columndata))
    

    你得到输出:

    12.2 12 23 21

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2016-05-07
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      相关资源
      最近更新 更多