Diğer cevaplara ekleyerek, bir Series
de harita ve başvuru var .
Uygula, bir seriyi DataFrame yapabilir ; ancak, harita sadece başka bir serinin her hücresine bir seri koyacaktır, bu muhtemelen istediğiniz şey değildir.
In [40]: p=pd.Series([1,2,3])
In [41]: p
Out[31]:
0 1
1 2
2 3
dtype: int64
In [42]: p.apply(lambda x: pd.Series([x, x]))
Out[42]:
0 1
0 1 1
1 2 2
2 3 3
In [43]: p.map(lambda x: pd.Series([x, x]))
Out[43]:
0 0 1
1 1
dtype: int64
1 0 2
1 2
dtype: int64
2 0 3
1 3
dtype: int64
dtype: object
Ayrıca "bir web sunucusuna bağlanmak" gibi yan etkileri olan bir fonksiyonum olsaydı, muhtemelen apply
sadece netlik uğruna kullanırım .
series.apply(download_file_for_every_element)
Map
yalnızca bir işlevi değil, aynı zamanda bir sözlüğü veya başka bir diziyi de kullanabilir. Diyelim ki permütasyonları değiştirmek istiyorsunuz .
almak
1 2 3 4 5
2 1 4 5 3
Bu permütasyonun karesi
1 2 3 4 5
1 2 5 3 4
Bunu kullanarak hesaplayabilirsiniz map
. Kendi kendine başvurunun belgelenip belgelenmediğinden emin değil, ancak çalışıyor 0.15.1
.
In [39]: p=pd.Series([1,0,3,4,2])
In [40]: p.map(p)
Out[40]:
0 0
1 1
2 4
3 2
4 3
dtype: int64