【问题标题】:How to find the average of a column in a csv file?如何找到csv文件中列的平均值?
【发布时间】:2021-12-13 20:19:20
【问题描述】:

我正在尝试在此 csv 文件中查找列的平均值。 我设法读取了 csv 文件:

from numpy import genfromtxt

emp_code = genfromtxt('C:\\Users\\V\\Desktop\\data science\\DS1_C4_S1_Numpy_PracticeBrief.csv', delimiter=',', dtype=None)

emp_code

array([['1', '22'],
       ['2', '27'],
       ['3', '31'],
       ['4', '29'],
       ['5', '27'],
       ['6', '26'],
       ['7', '27'],
       ['8', '23'],
       ['9', '27'],
       ['10', '32'],
       ['11', '28'],
       ['12', '27'],
       ['13', '22'],
       ['14', '27'],
       ['15', '35'],
       ['16', '33'],
       ['17', '28'],
       ['18', '22'],
       ['19', '25'],
       ['20', '27'],
       ['21', '37'],
       ['22', '27'],
       ['23', '24'],
       ['24', '27'],
       ['25', '28'],
       ['26', '26'],
       ['27', '27'],
       ['28', '27'],
       ['29', '29'],
       ['30', '49'],
       ['31', '26'],
       ['32', '32'],
       ['33', '26'],
       ['34', '24'],
       ['35', '24'],
       ['36', '23'],
       ['37', '28'],
       ['38', '28'],
       ['39', '22'],
       ['40', '26'],
       ['41', '32'],
       ['42', '35'],
       ['43', '33'],
       ['44', '31'],
       ['45', '30'],
       ['46', '36'],
       ['47', '22'],
       ['48', '23'],
       ['49', '32'],
       ['50', '34']], dtype='<U2')

现在,我正在尝试找出平均年龄。我不确定如何找到它。是np.mean['Age'] 吗? 编辑:我尝试了 emp_code[:,1].mean() 并给出了错误。 这是一个类型错误,所以我无法理解其背后的原因。

【问题讨论】:

  • 第一行看起来像标题,尝试将skip_header=1 传递给genfromtxt,并使用delimeter=',',然后你会得到一个包含两列的numpy数组,第一列是emp_code,第二列是@ 987654327@。或者你可以看看pandas.read_csv
  • @Quang Hoang 我使用了skip_header=1。那之后我该怎么办?
  • emp_code[:,1].mean() 为您提供平均年龄。
  • @QuangHoang - OP 的字符串带有“,”(作为小数点?)。而且看起来emp_code 是一个一维数组。
  • 尝试传递dtype=None,您现在正在强制它以字符串而不是数值的形式读取数据。

标签: python numpy csv average


【解决方案1】:

数据类型存在问题。您可能需要typecast(转换)或从文本文件中读取浮点数作为数据类型。

从文本文件中将其读取为浮点数:

emp_code = genfromtxt('C:\\Path\\to\\csv\\DS1_C4_S1_Numpy_PracticeBrief.csv', delimiter=',', dtype=np.float64)
mean_age = emp_code[:,1].mean()

此代码可以帮助您将 numpy 数组转换为浮点数并获取平均年龄。

emp_code = np.asarray(emp_code, dtype=np.float64)
mean_age = emp_code[:,1].mean()

【讨论】:

  • 我也是这么想的。谢谢你的回答。
猜你喜欢
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2022-06-30
相关资源
最近更新 更多