Chúng tôi thường được yêu cầu ánh xạ lại các giá trị cột Pandas DataFrame bằng từ điển [Dict], bạn có thể đạt được điều này bằng cách sử dụng phương pháp
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
8. Phương thức
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
8 lấy các tham số và chữ ký khác nhau, chúng tôi sẽ sử dụng phương thức lấy Dictionary[Dict] để ánh xạ lại các giá trị cột. Như bạn đã biết Từ điển là một cặp khóa-giá trị trong đó khóa là giá trị hiện có trên cột và giá trị là giá trị bằng chữ bạn muốn thay thế bằngTrong khi làm việc với dữ liệu trong Pandas DataFrame, chúng tôi thực hiện một loạt các thao tác trên dữ liệu như một phần của quá trình dọn dẹp hoặc tiêu chuẩn hóa để lấy dữ liệu ở dạng mong muốn. Một trong những hoạt động này có thể là chúng tôi muốn ánh xạ lại các giá trị của một cột cụ thể trong DataFrame, một ví dụ được sử dụng nhiều nhất sẽ là chuyển đổi mã giai đoạn 2 chữ cái thành tên đầy đủ hoặc ngược lại. Hãy thảo luận về một số cách với các ví dụ để ánh xạ lại các giá trị trong cột DataFrame bằng từ điển
Trong ví dụ dưới đây, tôi có một DataFrame với cột
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
0 và tôi sẽ ánh xạ lại các giá trị của cột này bằng một giá trị mới1. Ánh xạ lại các giá trị cột bằng Dict bằng cách sử dụng Pandas DataFrame. thay thế[]
Bạn có thể sử dụng
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
1 để ánh xạ lại/thay thế các giá trị trong DataFrame của gấu trúc bằng các giá trị Từ điển. Nó cho phép bạn linh hoạt thay thế các giá trị cột bằng các biểu thức chính quy để thay thế biểu thức chính quyTrước tiên, hãy tạo một Khung dữ liệu Pandas
import pandas as pd
import numpy as np
technologies= {
'Courses':["Spark","PySpark","Hadoop","Python","Pandas"],
'Fee' :[22000,25000,23000,24000,26000],
'Duration':['30days','50days','30days', None,np.nan],
'Discount':[1000,2300,1000,1200,2500]
}
df = pd.DataFrame[technologies]
print[df]
Năng suất dưới kết quả. Như bạn thấy DataFrame có 4 cột
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
2,
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
3,
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
4 và
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
5
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
Bây giờ chúng ta sẽ ánh xạ lại các giá trị của cột
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
6‘ theo mã tương ứng của chúng bằng cách sử dụng hàm
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
7
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
Sản lượng dưới sản lượng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
3Trong trường hợp nếu bạn muốn ánh xạ lại các giá trị cột trên DataFrame hiện có, hãy sử dụng
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
8
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
52. Ánh xạ lại các giá trị cột Không có hoặc NaN
sử dụng
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
9 để ánh xạ lại các giá trị không hoặc NaN trong DataFrame của gấu trúc với các giá trị Từ điển. Để ánh xạ lại các giá trị
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
30/
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
31 của cột
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
32‘ theo mã tương ứng của chúng bằng cách sử dụng hàm
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
7. Đọc cách thay thế các giá trị Không có/NaN bằng chuỗi rỗng trong pandas
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
1Sản lượng dưới sản lượng
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
23. Ánh xạ lại nhiều giá trị cột
Bạn muốn ánh xạ lại các giá trị trong nhiều cột Khóa học và Thời lượng trong DataFrame của gấu trúc. Bạn có thể sử dụng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
34 mã tương ứng của chúng bằng hàm
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
7. Nó truy xuất cả
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
2 và
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
4 đều là các giá trị cột được ánh xạ lại
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
7Sản lượng dưới sản lượng
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
84. Ánh xạ lại nhiều cột có cùng giá trị
Bạn có thể sử dụng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
38 để ánh xạ lại nhiều cột có cùng giá trị trong DataFrame của gấu trúc. Sử dụng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
39 ánh xạ lại nhiều cột để truy xuất các giá trị
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
50
# Difine Dict with the key-value pair to remap.
dict = {"Spark" : 'S', "PySpark" : 'P', "Hadoop": 'H', "Python" : 'P', "Pandas": 'P'}
df2=df.replace[{"Courses": dict}]
print[df2]
2Sản lượng dưới sản lượng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
05. Ánh xạ lại các giá trị trực tiếp trên sê-ri
Bây giờ chúng tôi đang ánh xạ lại các giá trị trực tiếp trên chuỗi của cột____22 theo các mã tương ứng bằng cách sử dụng hàm
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
52
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
1Sản lượng dưới sản lượng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
36. Sử dụng map[] để ánh xạ lại các giá trị cột trong Pandas
Pandas cũng cung cấp phương pháp
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
53 có thể được sử dụng để sắp xếp lại các giá trị cột đơn hoặc nhiều cộtSử dụng map[] để ánh xạ lại các giá trị cột trong pandas DataFrame có thể chia danh sách thành các cột khác nhau và sử dụng bản đồ để thay thế các giá trị. Từ điển có nhiều hơn một vài khóa, sử dụng map[] có thể nhanh hơn nhiều so với replace[]. Sử dụng cú pháp này.
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
54có hai phiên bản của phương pháp này, tùy thuộc vào việc từ điển của bạn có ánh xạ toàn diện tất cả các giá trị có thể hay không7. Lập bản đồ toàn diện
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
3Sản lượng dưới sản lượng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
48. Ánh xạ không đầy đủ
Nếu bạn có một ánh xạ không đầy đủ và muốn giữ lại các biến hiện có cho những trường hợp không khớp, bạn có thể thêm
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
55
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
5Sản lượng dưới sản lượng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
69. Hoàn thành ví dụ về từ điển để ánh xạ lại các giá trị cột trong Pandas DataFrame
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
7Phần kết luận
Trong bài viết này, bạn đã học cách ánh xạ lại các giá trị cột bằng Dict trong Pandas DataFrame bằng cách sử dụng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
8 và
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
57. với
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
8, ánh xạ lại các giá trị cột không hoặc cột nan, ánh xạ lại nhiều giá trị cột và các giá trị giống nhau. Ngoài ra, hàm
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 30days 1000
3 Python 24000 None 1200
4 Pandas 26000 NaN 2500
57, bạn đã học pandas remap các giá trị trong một cột với hai cách tiếp cận từ điển [Dict]. Ánh xạ toàn diện và Ánh xạ không toàn diện