我的目標是轉換一個數據幀中的數據並將結果輸出到新的數據幀。這裏是我到目前爲止,使用簡化的數據幀:通過熊貓數據幀循環訪問函數
import math
import pandas as pd
data = {'A':[1,4,3,5,7],'B':[0,6,3,0,2],'C':[1,1,3,0,4]} #sample data
df = pd.DataFrame(data)
transDF = pd.DataFrame() #empty dataframe for results
def Chord(y): #Chord transformation function
ySUM = sum(a*a for a in y)
ySUMsqrt = math.sqrt(ySUM)
yPRIME = []
for a in y:
RESULT = a/ySUMsqrt
yPRIME.append(RESULT)
return yPRIME
for Yi, row in df.iterrows(): #my attempt at a loop
Yrow = df.loc[df.index == Yi]
y = yRow.values.tolist()
tfRow = float(Chord(y))
transDF = transDF.append(tfRow)
,如果我只是給它一個列表本身工作的功能,但是當我嘗試環路我得到,說:「不能乘序列錯誤類型'list'的非整型。我嘗試過儘可能多的修改我的循環,但在這一點上,我已經沒有想法了。我將不勝感激任何見解!
的問題是,你的函數需要一個列表,而不是一個列表中的列表,簡單地解決您的功能改變此行以'Y = yRow.values.tolist()[0]'或者你可以改變你的函數通過這麼做來獲得'x'的變量數量,'def Chord(* y)' –