我开始学习 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/