遍历 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()
。
我正在尝试从 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()
。