我需要使用lambda函數來逐行計算。例如,使用「MYFUNC」創建一些數據幀python pandas - 'Series'對象沒有屬性
import pandas as pd
import numpy as np
def myfunc(x, y):
return x + y
colNames = ['A', 'B']
data = np.array([np.arange(10)]*2).T
df = pd.DataFrame(data, index=[range(0, 10)], columns=colNames)
這確實工作
df['D'] = (df.apply(lambda x: myfunc(x.A, x.B), axis=1))
但第二種情況下不能正常工作!
df['D'] = (df.apply(lambda x: myfunc(x.colNames[0], x.colNames[1]), axis=1))
給錯誤
AttributeError: ("'Series' object has no attribute 'colNames'", u'occurred at index 0')
我真的需要使用第二種情況(使用訪問列表中colNames),它給出了一個錯誤,就如何做到這一點任何線索?
感謝
只需使用括號:'X [colNames [0]'(有哪些討論點符號和括號之間的差異問題,我想這可以被標記爲。一個重複的,如果任何人都可以找到鏈接)。 – ayhan
謝謝,它的作品!寫這個答案,並接受它! –
嚴格來說,如果您想從'x'本身獲取列名,請使用'x [x.index [0]]'。 –