【发布时间】:2021-04-23 21:02:19
【问题描述】:
在 Python 3.8.5 中工作
问题:CSV 文件包含 100 行,两列包含模块执行计算所需的数据。我想用两个数据点运行每一行,获取输出并将其插入第三列。
到目前为止的操作:我找到了 CSV 模块,可以使用 CSV.reader 读取每一行。我可以看到如何获取数据点的输出,但看不到如何获取它们并在我需要运行以处理数据的模块中使用它们。我还发现了子进程,我相信它是可以让我处理每一行的模块。我只是发现很难将这两者联系起来。
示例数据:
DateTime,Date,Time,Wind_Direction,Effective_Fetch,Wind_Speed
01/10/2012 00:00,01/10/2012,00:00:00,228,510,1.976
01/10/2012 00:10,01/10/2012,00:10:00,231,516,1.389
01/10/2012 00:20,01/10/2012,00:20:00,239,532,1.759
我要处理的两列是Effective_Fetch 和Wind_Speed。
模块如下:
def Hs(w, Lf):
gravity=9.81 #ms^-2
slope=0.0026
x = (slope)*(gravity**(-0.53))*(w**(1.06)*(Lf**(0.47)))
return x
w 是 Wind_Speed,Lf 是 Effective_Fetch 和 x 是我想插入到 Wind_Speed 后面的列中的值,列标题为“Wave_Height” - 我已经阅读在 Pandas 中也应该能够做到这一点的其他模块。
【问题讨论】:
-
subprocess似乎是一条红鲱鱼,您不需要它来处理 CSV 文件中的行,而是用于启动子进程(= 其他程序)。 -
啊,好吧,所以我走错了路。请就最好的前进方式提出任何建议吗?我想知道我是否只是编写另一个模块,只是将数据提取到一个新列表中,但我仍然无法弄清楚如何绘制每个数据点并使用它(我有脚本在 R 中执行此操作,而不是 Python,但它必须是python)
标签: python python-3.x csv subprocess data-processing