DataFrame
Pandas'ta bir bütün için uygulanan bir işlevdeki bir satırın dizinine erişmeye çalışıyorum . Bende böyle bir şey var:
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
ve belirli bir satırdaki öğelere erişen bir işlev tanımlayacağım
def rowFunc(row):
return row['a'] + row['b'] * row['c']
Bunu şu şekilde uygulayabilirim:
df['d'] = df.apply(rowFunc, axis=1)
>>> df
a b c d
0 1 2 3 7
1 4 5 6 34
Müthiş! Şimdi dizini işlevime dahil etmek istersem ne olur? Eklemeden DataFrame
önce verilen herhangi bir satırın dizini d
olacaktır Index([u'a', u'b', u'c', u'd'], dtype='object')
, ancak ben 0 ve 1'i istiyorum. Bu yüzden sadece erişemiyorum row.index
.
Dizini sakladığım tabloda geçici bir sütun oluşturabileceğimi biliyorum, ancak bunun satır nesnesinde bir yerde depolanıp depolanmadığını merak ediyorum.
apply
mı? Çerçevenin kendisinde vektörleştirilmiş operasyonlar yapmaktan çok daha yavaştır. (Bazen uygulamak olduğunu şey yapmanın en kolay yolu, ve performans konuları genellikle abartılı, ancak belirli örneğin kolay olarak var değil kullanmak için.)