【发布时间】:2020-04-18 15:31:19
【问题描述】:
我正在读取一个包含十列的 csv - 文件。
我的公式应该将第一个向量除以第二个向量。第一个向量由前五个值(即 exe 数据的前五列)组成,第二个向量由后五个值(即 exe 数据的最后五列)组成。 现在我想用公式对每一行进行计算。这意味着,我想计算第一行、第二行、第三行等等......并带有一个输出(一个向量)。 以第一行为例:
left = data_one.values[0,0:5]
right = data_one.values[0,5:10]
def symmetryRatio():
result_one = left/right
print("The result is: " +str(result_one))
这是我的示例 csv - 包含五行的数据(但我也可以拥有包含 100 行或更多行的数据):
1.00,0.80,0.40,0.20,0.50,1.20,0.90,0.30,0.20,0.34
1.10,0.85,0.50,0.21,0.59,1.30,0.95,0.40,0.21,0.42
0.90,0.90,0.45,0.23,0.50,1.10,1.00,0.35,0.23,0.35
1.05,0.70,0.40,0.28,0.57,1.25,0.80,0.30,0.28,0.38
0.95,0.75,0.45,0.30,0.60,1.15,0.85,0.35,0.30,0.42
我已经开始使用一种新方法,它应该在每一行上运行:
data_one=pd.read_csv("file:///C:/Users/...../healthyValues.csv")
def rowPass():
for line in data_one:
print(line)
return 0
现在我不知道该怎么走。
我希望我想做什么很清楚。
最终应该有(我认为是)两种方法。一个用公式进行计算(symmetryRatio()),一个在行上运行(rowPass())。
谢谢你帮助我。
编辑:
现在我计算了所有列的平均值。然后我将这些值放入两个向量中。之后,我再次使用了这两个向量的公式。
one = data_one.iloc[:,0].mean()
two = data_one.iloc[:,1].mean()
three = data_one.iloc[:,2].mean()
four = data_one.iloc[:,3].mean()
five = data_one.iloc[:,4].mean()
six = data_one.iloc[:,5].mean()
seven = data_one.iloc[:,6].mean()
eight = data_one.iloc[:,7].mean()
nine = data_one.iloc[:,8].mean()
ten = data_one.iloc[:,9].mean()
#first vector:
vek1=np.array([one1,two1,three1,four1,five1])
#second vector
vek2=np.array([six1,seven1,eight1,nine1,ten1])
def symmetryRatio():
res=vek1/vek2
print(res)
也就是说,我有两种情况:
- 计算所有行(参见 GiovaniSalazar 的正确答案)
- Mean-Average-Value-Calculation over all colomns --> 一个向量中的前五个值和一个向量中的后五个值(参见我的代码)
是否有机会以一种方法或两种方法更好地完成这两项工作?怎么做?
【问题讨论】:
-
你能添加你期望的输出吗?
-
是的,当然。对不起。我的输出应该显示行上的所有结果。所以首先是公式的第一行的结果,然后是第二行的结果,依此类推......你知道我的意思吗?
-
好的,但是你的csv中有......例如5行......并且symbolicRatio得到2行作为输入......它对每一行重复?......我的意思是对称比率 (row1,row2) 对称比率 (row3,row4), 对称比率 (row5,row6)....等等?
-
或者只是第一行和第二行?
-
并像文本一样添加示例 csv(我需要复制)而不是图像
标签: python list csv for-loop row