11 Kasım 2012, Pazar
Nasıl Pandalar dataframe iki sütun için bir işlevi uygulamak için
'ID', 'col_1', 'col_2'
sütunlu df
yoktur sanırım. Ve ben bir işlev tanımlayın :
f = lambda x, y : my_function_expression
.
Şimdi df
f
'In iki sütun 8* *element-wise için yeni bir sütun hesaplamak 'col_3'
, biraz gibi : . uygulamak istiyorum
df['col_3'] = df[['col_1','col_2']].apply(f)
# Pandas gives : TypeError: ('<lambda>() takes exactly 2 arguments (1 given)'
Nasıl yapmalı ?
**Aşağıda detaylı bir örnek ekleyin***
import pandas as pd
df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
mylist = ['a','b','c','d','e','f']
def get_sublist(sta,end):
return mylist[sta:end 1]
#df['col_3'] = df[['col_1','col_2']].apply(get_sublist,axis=1)
# expect above to output df as below
ID col_1 col_2 col_3
0 1 0 1 ['a', 'b']
1 2 2 4 ['c', 'd', 'e']
2 3 3 5 ['d', 'e', 'f']
CEVAP
12 Kasım 2012, PAZARTESİ
İşte size bir örnek axis = 1
ile arıyorum olan dataframe, apply
kullanarak.
Fark işlevini 14**, işlevi pandalar Serisi bir nesne kabul etmek için yeniden yazmak ve sonra değerleri almak için Dizi dizini için iki değerleri geçirmek için çalışmak yerine bu not.
In [49]: df
Out[49]:
0 1
0 1.000000 0.000000
1 -0.494375 0.570994
2 1.000000 0.000000
3 1.876360 -0.229738
4 1.000000 0.000000
In [50]: def f(x):
....: return x[0] x[1]
....:
In [51]: df.apply(f, axis=1) #passes a Series object, row-wise
Out[51]:
0 1.000000
1 0.076619
2 1.000000
3 1.646622
4 1.000000
Kullanım durumunda bağlı olarak, bazen group
nesne pandalar oluşturmak için yararlıdır, ve sonra grup apply
kullanın.
Bunu Paylaş:
Nasıl sütun(s) tarafından bir datafram...
Pandalar DataFrame satırları filtrelem...
nasıl pandalar dataframe satır sayısı ...
nasıl matlab içinde her satır için bir...
Nasıl Server tablo sütun olup olmadığı...