【发布时间】:2017-03-10 05:32:06
【问题描述】:
我有一个 5 列 13 行的 csv 文件,如下所示:
现场实验长宽高
1 1 2.2 1.3 9.6
1 2 2.1 2.2 7.6
1 3 2.7 1.5 2.2
2 1 3 4.5 1.5
2 2 3.1 3.1 4
2 3 2.5 2.8 3
3 1 1.9 1.8 4.5
3 2 1.1 0.5 2.3
3 3 3.5 2 7.5
4 1 2.9 2.7 3.2
4 2 4.5 4.8 6.5
4 3 1.2 1.8 2.7
长/宽/高是植物的长度。
对于数据集中的每一行,我想创建一个条件代码来查看植物是高(高度 > 5)、中(2
植物中的总碳 = 1.8 + 2 * log(volume) 其中体积=长 x 宽 x 高。
然后我想将此信息作为表格存储在嵌套列表中,其中第一列包含实验编号,第二列包含字符串“高”、“中”或“短”,具体取决于植物的高度,第三列包含植物的碳含量。
这是我目前的代码:
from __future__ import division
import math
import numpy
shrub_exp=numpy.loadtxt("/Users/louisestevens/Downloads/shrub_volume_experiment.csv",dtype=float,delimiter=',',skiprows=1,usecols=(2,3,4))
for rows in shrub_exp:
print(rows)
height=(shrub_exp,4)
def height_test(height):
if height > 5:
return 'Tall'
elif 2 <= height < 5:
return 'Medium'
else:
return 'Short'
for x in height:
print(height_test(x))
for x,y,z in shrub_exp:
volume=(x*y*z)
total_carbon=1.8 + 2 * math.log(volume)
print(total_carbon)
我不确定我是否正确选择了高度列 - 这是最后一列 - 以及如何将此信息存储在嵌套列表中。
请我指点一下如何简洁有效地编写这个脚本。
【问题讨论】:
-
顺便说一句,将所有内容缩进 4 个空格(或高亮 + ctrl+k)以保留格式。
-
这段代码运行对你来说没有错误吗?我在第 10 行得到一个 ValueError?如果您收到错误,这将是您帖子中包含的有用信息。
-
我对Numpy了解不多,但我觉得
height=(shrub_exp,4)应该是height = shrub_exp[4]
标签: python loops pandas numpy if-statement