gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
6, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
7,gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
8 và gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
9 có thể gây nhầm lẫn, đặc biệt nếu bạn chưa quen với Pandas vì tất cả chúng có vẻ khá giống nhau và có thể chấp nhận chức năng làm đầu vào. Dưới đây là so sánh nhanh các phương pháp khác nhauHình ảnh của tác giả
Chúng tôi sẽ xem xét chi tiết từng vấn đề bằng cách sử dụng dữ liệu mẫu sau
# python version 3.9
# pandas version 1.4.1import pandas as pddf = pd.DataFrame[{'name':['John Doe', 'Mary Re', 'Harley Me'],
'gender':[1,2,0],
'age':[80, 38, 12],
'height': [161.0, 173.5, 180.5],
'weight': [62.3, 55.7, 80.0]
}]
Hình ảnh của tác giả
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
0. 0,1,2 tương ứng với “không xác định”, “nam” và “nữ”
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
1. tính bằng cm
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
2. tính bằng Kg
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
3 là gì?gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
4 ánh xạ các giá trị của Sê-ri theo chức năng ánh xạ đầu vào. Được sử dụng để thay thế từng giá trị trong Sê-ri bằng một giá trị khác, có thể được lấy từ một hàm, lệnh hoặc Sê-ri
Thông số
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
5. ánh xạ tương ứng
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
6. {'Không', 'bỏ qua'}. Mặc định Không có. Nếu 'bỏ qua', hãy truyền các giá trị NaN mà không chuyển chúng đến sự tương ứng ánh xạ
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
trả lại
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
7
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
Những điểm chính
- Chỉ áp dụng cho Pandas Series
- Yếu tố-khôn ngoan hoạt động
- Chủ yếu được sử dụng để thay thế các giá trị
- Tham số
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
5 chấp nhận ánh xạ giữa giá trị cũ và giá trị mới có thể ở dạng [a] Từ điển, [b] Chuỗi và [c] Hàm
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
Từ điển
Mục tiêu là thay thế giới tính được mã hóa [0,1,2] thành giá trị thực của chúng [không xác định, nam, nữ]
Hình ảnh của tác giả
Đầu tiên, chúng tôi xác định từ điển ánh xạ giữa các giá trị được mã hóa và các giá trị thực tế ở dạng sau của
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
9, sau đó chúng tôi áp dụng gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 cho cột gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0. gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 tìm khóa trong từ điển ánh xạ tương ứng với giới tính được mã hóa và thay thế bằng giá trị từ điểngender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
Hình ảnh của tác giả
Đầu ra sẽ là
gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
3 nếu không tìm thấy cặp khóa-giá trị trong từ điển ánh xạ. Ánh xạ cho gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
4 bị xóa và đây là kết quả trông như thế nàoHình ảnh của tác giả
gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
Hình ảnh của tác giả
Loạt
Thay vì sử dụng từ điển ánh xạ, chúng tôi đang sử dụng Chuỗi ánh xạ.
gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 ngoại hình tìm kiếm một chỉ mục tương ứng trong Sê-ri tương ứng với giới tính được hệ thống hóa và thay thế nó bằng giá trị trong Sê-rigender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
6 của Sê-ri ánh xạ chứa giới tính được hệ thống hóa và cột gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 chứa giá trị thực của giới tínhHình ảnh của tác giả
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
Đầu ra sẽ là
gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
8, nếu không tìm thấy ánh xạ trong Sê-riHình ảnh của tác giả
gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
Hàm số
Chúng ta cũng có thể sử dụng một hàm [hoặc lambda] làm tham số
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
5 trong gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0. Hãy thử chỉ định một danh mục df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
1 [người lớn hoặc trẻ em] cho mỗi người bằng cách sử dụng hàm lambdadf['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
Ngoài ra, chúng ta có thể làm như sau
def get_age_group[age]: threshold = 21 if age >= threshold:
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]
Hình ảnh của tác giả
Lưu ý rằng ngưỡng tuổi đã được mã hóa cứng trong hàm
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
2 vì gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 không cho phép chuyển [các] đối số cho hàmGấu trúc df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
4 là gì?df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 được áp dụng cho cả Pandas DataFrame và Series. Khi được áp dụng cho DataFrames, df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 có thể vận hành hàng hoặc cột một cách khôn ngoandf['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
7
Gọi hàm trên các giá trị của Sê-ri. Có thể là ufunc [một hàm NumPy áp dụng cho toàn bộ Sê-ri] hoặc một hàm Python chỉ hoạt động trên các giá trị đơn lẻ
Thông số
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8. hàm sốdf['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
9. bool, mặc định Đúng. Cố gắng tìm dtype tốt hơn cho kết quả chức năng theo từng phần tử. Nếu Sai, để lại dưới dạng dtype=object. Lưu ý rằng dtype luôn được giữ nguyên cho một số dtype mảng mở rộng, chẳng hạn như Categoricaldef get_age_group[age]: threshold = 21 if age >= threshold:
0. tuple. Đối số vị trí được chuyển đến
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8 sau giá trị chuỗidef get_age_group[age]: threshold = 21 if age >= threshold:
2. Đối số từ khóa bổ sung được chuyển đến
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8
Trở lại
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
7 hoặc
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]def get_age_group[age]: threshold = 21 if age >= threshold:
5
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]- Nếu
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8 trả về một đối tượng Sê-ri, kết quả sẽ là một Khung dữ liệu
Những điểm chính
- Áp dụng cho dòng gấu trúc
- Chấp nhận một chức năng
- Có thể chuyển đối số vị trí hoặc từ khóa để hoạt động
- Có thể trả về Sê-ri hoặc Khung dữ liệu
Từ ví dụ trước của chúng tôi, chúng tôi đã thấy rằng
gender_map = {1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
0 không cho phép truyền đối số vào hàm. Mặt khác, df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 cho phép chuyển cả đối số vị trí hoặc từ khóa. Hãy tham số hóa hàm để chấp nhận tham số def get_age_group[age]: threshold = 21 if age >= threshold:9
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]
def get_age_group[age, threshold]: if age >= int[threshold]:
age_group = 'Adult'
else:
age_group = 'Child' return age_group
Vượt qua
def get_age_group[age, threshold]: if age >= int[threshold]:0 làm đối số từ khóa
age_group = 'Adult'
else:
age_group = 'Child' return age_group
# keyword argument
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]
Vượt qua
def get_age_group[age, threshold]: if age >= int[threshold]:1 làm đối số vị trí
age_group = 'Adult'
else:
age_group = 'Child' return age_group
# positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
Nhiều đối số
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 cũng có thể chấp nhận nhiều đối số vị trí hoặc từ khóa. Hãy chia def get_age_group[age, threshold]: if age >= int[threshold]:3 thành 3
age_group = 'Adult'
else:
age_group = 'Child' return age_group
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
1 [trẻ em, người lớn và người cao tuổi] dựa trên ngưỡng tuổi thấp hơn và cao hơngender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
0Vượt qua
def get_age_group[age, threshold]: if age >= int[threshold]:5 và
age_group = 'Adult'
else:
age_group = 'Child' return age_group
def get_age_group[age, threshold]: if age >= int[threshold]:6 làm đối số từ khóa
age_group = 'Adult'
else:
age_group = 'Child' return age_group
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
1Vượt qua
def get_age_group[age, threshold]: if age >= int[threshold]:5 và
age_group = 'Adult'
else:
age_group = 'Child' return age_group
def get_age_group[age, threshold]: if age >= int[threshold]:6 làm đối số vị trí
age_group = 'Adult'
else:
age_group = 'Child' return age_group
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
2Hình ảnh của tác giả
Áp dụng một chức năng numpy
Ngoài việc áp dụng hàm python [hoặc Lambda],
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 còn cho phép hàm numpy. Ví dụ: chúng ta có thể áp dụng numpy # keyword argument
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]
0 để làm tròn số gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]
1 của mỗi người thành số nguyên gần nhấtgender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
3Trả lại một chuỗi
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 trả về một chuỗi nếu hàm trả về một giá trị duy nhất. Viết hàm tìm họ của một ngườigender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
4Trả lại một DataFrame
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
5 trả về một DataFrame khi hàm trả về một Sê-rigender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
5# keyword argument
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]
4
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]
Áp dụng một chức năng dọc theo một trục của DataFrame
Thông số
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8. Hàm áp dụng cho từng cột hoặc hàng# keyword argument
6. Trục dọc theo đó chức năng được áp dụng.
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]# keyword argument
7 - áp dụng chức năng cho từng cột.
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]# keyword argument
8 - áp dụng chức năng cho mỗi hàng
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]# keyword argument
9. Xác định xem hàng hoặc cột có được truyền dưới dạng đối tượng Sê-ri hoặc ndarray không. Sai - chuyển từng hàng hoặc cột dưới dạng Chuỗi cho hàm. Đúng - Truyền đối tượng ndarray cho hàm
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]# positional argument
0. Những điều này chỉ hành động khi
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]# keyword argument
8 [cột]
df['age_group'] = df['age'].apply[get_age_group, threshold = 21]
- 'mở rộng'. kết quả giống như danh sách sẽ được chuyển thành cột
- 'giảm'. trả về một Sê-ri nếu có thể thay vì mở rộng các kết quả giống như danh sách. Điều này trái ngược với 'mở rộng'
- 'phát tin'. kết quả sẽ được phát tới hình dạng ban đầu của DataFrame, chỉ mục và cột ban đầu sẽ được giữ lạidef get_age_group[age]: threshold = 21 if age >= threshold:
0. tuple. Đối số vị trí được chuyển đến func sau giá trị chuỗi
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]def get_age_group[age]: threshold = 21 if age >= threshold:
2. Đối số từ khóa bổ sung được chuyển đến func
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]
trả lại
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
7 hoặc
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]def get_age_group[age]: threshold = 21 if age >= threshold:
5
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]
Những điểm chính
- Hàm có thể được áp dụng theo cột [_______55_______6] hoặc theo hàng [
# positional argument
7]
df['age_group'] = df['age'].apply[get_age_group, args = [21,]] - Có thể truyền dữ liệu dưới dạng Sê-ri hoặc mảng có nhiều mảng để hoạt động
- Có thể chuyển đối số vị trí hoặc từ khóa để hoạt động
Áp dụng một hàm numpy theo cột
Làm tròn chiều cao và cân nặng đến số nguyên gần nhất. Chức năng được áp dụng theo cột như được định nghĩa bởi
# positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
6. Khi được sử dụng theo cột, # positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
9 có thể được áp dụng cho nhiều cột cùng một lúcgender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
6Áp dụng hàm Lambda theo hàng
Tách tên thành tên và họ bằng cách áp dụng hàm
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
00 theo hàng như được xác định bởi # positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
7gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
7Chúng ta có thể tách danh sách thành nhiều cột, một phần tử trên mỗi cột, bằng cách xác định tham số
# positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
0 là gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
03gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
8Áp dụng một chức năng theo hàng
Cùng tìm Chỉ số khối cơ thể [BMI] của mỗi người. Chỉ số BMI được định nghĩa là cân nặng tính bằng kilôgam chia cho bình phương chiều cao tính bằng mét. Chúng tôi tạo một UDF để tính BMI và áp dụng UDF theo kiểu thông minh cho DataFrame. Khi được sử dụng theo hàng,
# positional argument
df['age_group'] = df['age'].apply[get_age_group, args = [21,]]
9 có thể sử dụng các giá trị từ các cột khác nhau bằng cách chọn các cột dựa trên tên cộtgender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
9Hình ảnh của tác giảGấu trúc là gì
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
05?Áp dụng một chức năng cho một phần tử DataFrame khôn ngoan. Phương pháp này áp dụng một hàm chấp nhận và trả về vô hướng cho mọi phần tử của DataFrame
Thông số
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8. Hàm Python, trả về một giá trị từ một giá trịgender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
6. {'Không', 'bỏ qua'}. Mặc định Không có. Nếu 'bỏ qua', hãy truyền các giá trị NaN mà không chuyển chúng đến sự tương ứng ánh xạ
s = pd.Series[gender_map] # mapping series
df['gender'] = df['gender'].map[s]def get_age_group[age]: threshold = 21 if age >= threshold:
2. Đối số từ khóa bổ sung được chuyển đến
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8
Trở lại
def get_age_group[age]: threshold = 21 if age >= threshold:
5
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]
Những điểm chính
- Áp dụng cho Pandas DataFrame
- Chấp nhận một chức năng
- Có thể chuyển đối số từ khóa để hoạt động
- Yếu tố-khôn ngoan hoạt động
Trong ví dụ sau, chúng tôi có hai cột giá trị số mà chúng tôi đã thực hiện phép tính số học đơn giản trên
gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
0gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
11 lấy từng giá trị trong DataFrame ban đầu, chuyển nó vào hàm gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
12 dưới dạng gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
13 , thực hiện các thao tác và trả về một giá trị duy nhất. gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
11 cũng chấp nhận đối số từ khóa nhưng không chấp nhận đối số vị tríGấu trúc gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15 là gì?Áp dụng các chức năng có thể xâu chuỗi mong đợi Sê-ri hoặc DataFrames
Thông số
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8. Chức năng áp dụng cho Sê-ri/DataFramedef get_age_group[age]: threshold = 21 if age >= threshold:
0. Đối số vị trí được chuyển đến
age_group = 'Adult'
else:
age_group = 'Child' return age_groupdf['age_group'] = df['age'].map[get_age_group]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
19. Đối số từ khóa được chuyển đến
df['gender'] = df['gender'].map[gender_map]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8
trả lại
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
21. kiểu trả về của
df['gender'] = df['gender'].map[gender_map]df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8
Những điểm chính
- Áp dụng cho Pandas Series và DataFrame
- Chấp nhận một chức năng
- Có thể truyền tham số để hoạt động dưới dạng đối số vị trí hoặc từ khóa
- Trả về cùng một đối tượng như
df['age_group'] = df['age'].map[lambda x: 'Adult' if x >= 21 else 'Child']
8
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
24 hoạt động như thế nào?gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15 thường được sử dụng để xâu chuỗi nhiều chức năng lại với nhau. Ví dụ: chúng tôi có 3 hàm hoạt động trên DataFrame, gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
26, gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
27 và gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
28, mỗi hàm yêu cầu DataFrame làm đầu vào và trả về DataFrame đã chuyển đổigender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
1Nếu không sử dụng
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15, chúng tôi sẽ áp dụng các chức năng theo cách lồng nhau, có thể trông khá khó đọc nếu có nhiều chức năng. Để theo trình tự thực hiện chức năng, người ta sẽ phải đọc từ “trong ra ngoài”. Hầu hết chức năng bên trong gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
28 được thực hiện đầu tiên theo sau bởi gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
27 sau đó là gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
26gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
2gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15 tránh lồng nhau và cho phép các chức năng được xâu chuỗi bằng cách sử dụng ký hiệu dấu chấm[gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
34], làm cho nó dễ đọc hơn. gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15 cũng cho phép truyền cả đối số vị trí và từ khóa và giả định rằng đối số đầu tiên của hàm đề cập đến DataFrame/Series đầu vàogender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
3Theo trình tự thực hiện các chức năng được xâu chuỗi cùng với
gender_map = {0: 'Unknown', 1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
15 sẽ trực quan hơn; gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
6, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
8 và gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
7 bị hạn chế trả về Sê-ri, Khung dữ liệu hoặc cả hai. Tuy nhiên, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
9 có thể trả về bất kỳ đối tượng nào, không nhất thiết là Sê-ri hoặc Khung dữ liệu. Hãy cùng xem một số ví dụ sử dụng cùng một tập dữ liệu mẫuHàm bên dưới trả về giá trị float
gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
4Hàm dưới đây trả về một chuỗi
gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
5Tóm tắtTrong bài viết này, chúng tôi đã xem xét sự khác biệt giữa
gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
8, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
6 và gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
7, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
9 và cách sử dụng từng phương pháp này để biến đổi dữ liệu của chúng tôi. Mặc dù chúng tôi không đi sâu vào chi tiết về tốc độ thực hiện của gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
8, gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
6 và gender_map = {1:'Male', 2:'Female'}
df['gender'] = df['gender'].map[gender_map]
7 , xin lưu ý rằng các phương thức này là các vòng lặp được ngụy trang và chỉ nên được sử dụng nếu không có hoạt động vector hóa tương đương. Nói chung, các hoạt động được vector hóa nhanh hơn các vòng lặp và sự khác biệt về thời gian thực hiện trở nên quan trọng hơn khi kích thước của tập dữ liệu tăng lên