遍历 csv 行并放入代码

loop over rows of csv and put inside code

我正在尝试从 6 列 csv 数据中读取 5 列,并在公式中使用每一行,并为所有行使用 itarete。

import pandas as pd
df = pd.read_csv("/home/user/trial/blabla.csv", names=["name", "loc1", "loc2", "loc3", "loc4", "trial", "safe"])

a = something(b=df["trial"])
b1 = anotherhing(df["loc1"], df["loc2"], a)
b2 = anotherhing(df["loc3"], df["loc4"], a)

该文件是 csv 文件,类似这样,有数百行

john 12.1 22.3 33.5 88.2 0.2 1
jack 25.3 11.8 93.1 08.1 0.01 1

当我手动输入值时,一切正常。但是,当我将 df 列放在每一行时。这是行不通的。它一次读取所有列而不是 1 乘 1。

我做错了什么?

我不确定我是否答对了你的问题,但是在做:

df['loc1'] returns 整个列作为一个 pandas 系列,因此您不会获得列的单独值。

很难给出一个好的建议,因为我真的不知道你的 something(...) 功能是做什么的,但如果你想要单独的值,你可以这样做:

something_values = []

for row in df.itertuples(): 
  something_values.append(something(row[your_column_name]))

无论哪种方式,可能值得研究针对此类操作或按列计算(例如 df['colA'] * df['colb'])优化的数据框方法 .apply()