我正在嘗試從 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 列時。這沒用。它一次讀取所有列,而不是一一讀取。
我在這里做錯了什么?
uj5u.com熱心網友回復:
我不確定我的問題是否正確,但是這樣做:
df['loc1']將整個列作為熊貓系列回傳,因此您不會獲得列的單個值。
很難給出一個好的建議,因為我真的不知道你的something(...)函式是做什么的,但是如果你想要的是單獨的值,你可以這樣做:
something_values = []
for row in df.itertuples():
something_values.append(something(row[your_column_name]))
無論哪種方式,可能值得研究.apply()針對此類操作優化的資料框方法,或按列計算(例如df['colA'] * df['colb'])。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/468588.html
標籤:Python python-3.x 熊猫 循环
上一篇:在回圈中更改變數的名稱
