python - 从 CSV 文件添加值

标签 python

我开始学习 python,但在语法方面遇到了困难。

我有一个简单的 CSV 文件,如下所示

0.01,10,20,0.35,40,50,60,70,80,90,100
2,22,32,42,52,62,72,82,92,102,112
3,33,43,53,63,5647,83,93,103,113,123

我想查找 csv 文件中除每行第一个值之外的所有数据中的最高值和最低值。

因此,这里的答案实际上是

highestValue=5647
lowestValue=0.35

因为查看的数据如下(它忽略了每行的第一个值)

10,20,0.35,40,50,60,70,80,90,100
22,32,42,52,62,72,82,92,102,112
33,43,53,63,73,5647,93,103,113,123

我希望我的代码适用于任何行长度。

我真的不得不承认我很挣扎,但这就是我尝试过的。我通常编写 PHP 程序,所以这对我来说是全新的。我已经为这个简单的任务工作了一天,但无法理解它。例如,我认为我对术语“列表”感到困惑。

import numpy

test_data_file = open ("Anaconda3JamesData/james_test_3.csv","r")
test_data_list = test_data_file.readlines()
test_data_file.close()

for record in test_data_list:
    all_values = record.split(',')
    maxvalue = np.max(numpy.asfarray(all_values[1:])

print (maxvalue)

根据测试数据(该问题顶部显示的 CSV 文件),我希望答案是

highestValue=5647
lowestValue=0.35

最佳答案

如果您使用 numpy,则可以将 csv 文件读取为 numpy.ndarray使用numpy.genfromtxt()然后使用数组的 .max().min()方法

import numpy
array = numpy.genfromtxt('Anaconda3JamesData/james_test_3.csv', delimiter=',')
array[:, 1:].max()
array[:, 1:].min()

[:, 1:] 部分使用 numpy's array indexing 。它表示获取所有行(第一个[:,部分),并且对于每一行,获取除第一列之外的所有行(1:] 部分)。这不适用于 Python 的内置列表。

关于python - 从 CSV 文件添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163468/

相关文章:

python - 用于匹配 Python 列表中特定模式的正则表达式

python - 按标签删除列范围

python - 通过参数确定绘图平滑度

python - 配置 .travis.yml 以支持 mysql-connector-python

python beautifulsoup 获取html标签内容

python - 导入错误: cannot import name '_UnstableArchMixin' from 'sklearn.base'

python - 如何单元测试/模拟 requests.get(url) 及其响应

python - 当我在主页上执行其他进程时,selenium python 可以在后台工作吗?

Python 3 简单的 HTTPS 服务器

python - TweePy - 如何隐藏 API key