ฉันกำลังพยายามเข้าถึงดัชนีของแถวในฟังก์ชั่นที่นำไปใช้ทั่วทั้งรายการDataFrame
ใน Pandas ฉันมีสิ่งนี้:
df = pandas.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])
>>> df
a b c
0 1 2 3
1 4 5 6
และฉันจะกำหนดฟังก์ชันที่เข้าถึงองค์ประกอบด้วยแถวที่กำหนด
def rowFunc(row):
return row['a'] + row['b'] * row['c']
ฉันสามารถใช้มันได้ดังนี้:
df['d'] = df.apply(rowFunc, axis=1)
>>> df
a b c d
0 1 2 3 7
1 4 5 6 34
! น่ากลัว แล้วถ้าฉันต้องการรวมดัชนีในฟังก์ชันของฉันล่ะ? ดัชนีของแถวที่กำหนดในสิ่งนี้DataFrame
ก่อนเพิ่มd
จะเป็นIndex([u'a', u'b', u'c', u'd'], dtype='object')
แต่ฉันต้องการ 0 และ 1 ดังนั้นฉันจึงไม่สามารถเข้าถึงrow.index
ได้
ฉันรู้ว่าฉันสามารถสร้างคอลัมน์ชั่วคราวในตารางที่ฉันเก็บดัชนีได้ แต่ฉันสงสัยว่ามันถูกเก็บไว้ในวัตถุแถวที่ไหนสักแห่ง
apply
หรือไม่? มันช้ากว่าการแสดงผลแบบเวกเตอร์บนเฟรมมาก (บางครั้งการนำไปใช้เป็นวิธีที่ง่ายที่สุดในการทำบางสิ่งบางอย่างและการพิจารณาประสิทธิภาพมักจะเกินจริง แต่สำหรับตัวอย่างของคุณมันง่ายอย่างที่จะไม่ใช้)