Thêm vào các câu trả lời khác, trong Series
đó cũng có bản đồ và áp dụng .
Áp dụng có thể tạo một DataFrame trong một chuỗi ; tuy nhiên, bản đồ sẽ chỉ đưa một loạt vào mỗi ô của một chuỗi khác, đây có thể không phải là điều bạn muốn.
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
Ngoài ra nếu tôi có một chức năng với các tác dụng phụ, chẳng hạn như "kết nối với máy chủ web", có lẽ tôi sẽ sử dụng apply
chỉ vì mục đích rõ ràng.
series.apply(download_file_for_every_element)
Map
có thể sử dụng không chỉ một chức năng, mà còn từ điển hoặc một bộ khác. Giả sử bạn muốn thao tác hoán vị .
Lấy
1 2 3 4 5
2 1 4 5 3
Bình phương của hoán vị này là
1 2 3 4 5
1 2 5 3 4
Bạn có thể tính toán nó bằng cách sử dụng map
. Không chắc chắn nếu tự ứng dụng được ghi lại, nhưng nó hoạt động trong 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