【问题标题】:calculating Average of each cell across multiple csv计算多个 csv 中每个单元格的平均值
【发布时间】:2019-03-15 13:08:29
【问题描述】:

我有多个带有固定标题和 100 行的 csv 文件 (n),我正在尝试计算这些表的所有 [i][j] 元素的平均值(或其他值,例如最小值或最大值)和将其存储在一个最终的 csv 表中。我试过 genfromtxt 但它没有锻炼。这是我的代码:

import numpy as np
from numpy import genfromtxt


a=genfromtxt('C:\\Users\\my_pc\\Desktop\\a1.csv',delimiter=';' , skip_header=1, dtype=None, encoding='utf_8')
b=genfromtxt('C:\\Users\\my_pc\\Desktop\\a2.csv',delimiter=';' , skip_header=1, dtype=None, encoding='utf_8')
c=genfromtxt('C:\\Users\\my_pc\\Desktop\\a3.csv', delimiter=';' , skip_header=1, dtype=None, encoding='utf_8')

#average
d = (a + b+ c) /3
print(d)

我得到这个错误:

我该怎么做?也请告诉我genfromtxt参数是否正确?)

【问题讨论】:

  • 如果您将 csv 文件的内容显示为文本(它们是什么)而不是通过电子表格图像,我们可以尝试重现...请记住,csv 文件是 文本 文件!
  • @Serge Ballesta 这个电子表格是我在 excel 中随机生成的,并将其保存为 csv。但它代表了我数据的确切格式
  • 这不是问题所在。我可以从以文本形式呈现的 csv 复制粘贴,但不能从图像中复制。当问题包含 minimal reproducible example... 时,提供帮助会容易得多
  • @Justice_Lords 只要效果更好,就没有区别。但请记住,最终结果应该在一个数据框中,所以我可以用它来做进一步的计算。 tnx

标签: python csv numpy genfromtxt


【解决方案1】:
import pandas as pd
df=pd.read_csv("a1.csv")
for i in range(2,21):
       filename="a"+str(i)+".csv"
       df+=pd.read_csv(filename)
df=df/20

这应该可以解决问题..

【讨论】:

  • 还有一个问题,我应该如何将它放在 for 循环中,因为我有 20 个数据集,你能帮我解决这个问题吗?
  • @SaeidHedayati 你现在可以试试吗?
  • 抱歉回复晚了。我试过了,但我一直收到这个错误TypeError: unsupported operand type(s) for +: 'float' and 'str'
  • @SaeidHedayati 您必须发布完整代码,以便我可以帮助您。但是我认为如果您发布另一个带有示例数据集的问题会更好。也许尝试单独加载数据并检查其类型。我认为这个问题与类型转换有关。在添加之前尝试将“str”转换为“float”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2017-02-06
  • 2021-01-01
  • 1970-01-01
  • 2013-05-10
相关资源
最近更新 更多