Tôi vẫn đang tìm hiểu về dữ liệu tiêm chủng COVID-19 của Vương quốc Anh và trong bài đăng trên blog này, chúng ta sẽ tìm hiểu cách định dạng DataFrame chứa kết hợp các giá trị chuỗi và số
Ghi chú
Vào ngày 10 tháng 11 năm 2022, tôi đã tạo một video có cùng nội dung với bài đăng trên blog này. Hãy cho tôi biết nếu nó hữu ích 😊
Chúng tôi sẽ sử dụng chức năng tạo kiểu của Pandas, chức năng tạo CSS và HTML, vì vậy nếu bạn muốn làm theo, bạn sẽ cần cài đặt Pandas và Jupyter
pip install pandas jupyter
Tiếp theo, khởi chạy Jupyter và tạo sổ ghi chép
jupyter notebook
Hãy bắt đầu bằng cách nhập Pandas
import pandas as pd
Và bây giờ chúng ta sẽ tạo một DataFrame chứa dữ liệu mà chúng ta muốn định dạng
df = pd.DataFrame[{
"LTLA Name": ["Amber Valley", "Ashfield", "Bassetlaw"],
"Population": [72179, 77988, 70832],
"PercentageVaccinated": [0.228571, 0.223342, 0.184493]
}]
Bảng 1. Kết quảTên LTLADân sốPhần trămĐã tiêm phòng0
Thung lũng hổ phách
72179
0. 228571
1
cánh đồng tro
77988
0. 223342
2
luật basset
70832
0. 184493
Một cách để làm điều này là định dạng các giá trị tại chỗ, như hình bên dưới
df.loc[:, "Population"] = df["Population"].map['{:,d}'.format]
df.loc[:, "PercentageVaccinated"] = df["PercentageVaccinated"].map['{:.2f}'.format]
Sau khi chuyển đổi này, DataFrame trông như thế này
ban 2. Kết quảTên LTLADân sốPhần trămĐã tiêm phòng0
Thung lũng hổ phách
72,179
0. 23
1
cánh đồng tro
77,988
0. 22
2
luật basset
70,832
0. 18
Điều này hoạt động, nhưng nó thay đổi các giá trị cơ bản trong DataFrame thành các đối tượng mà chúng ta có thể thấy bằng cách gọi hàm
jupyter notebook
4df.dtypes
đầu ra
LTLA Name object
Population object
PercentageVaccinated object
dtype: object
Điều này có nghĩa là chúng ta không thể thực hiện bất kỳ phép tính dựa trên số nào nữa. Ví dụ: nếu chúng tôi cố gắng nhân nhiều cột
jupyter notebook
5 và jupyter notebook
6jupyter notebook
0đầu ra
jupyter notebook
1Vì vậy, nếu chúng tôi muốn sử dụng dữ liệu cơ bản cho bất kỳ mục đích nào khác, định dạng như thế này không phải là một giải pháp tốt
Thay vào đó, chúng ta có thể sử dụng chức năng tạo kiểu Pandas. Tài liệu hơi nhiều, nhưng Chris Moffitt có một bài viết giới thiệu tuyệt vời về API kiểu dáng
Nếu chúng ta muốn áp dụng cùng một định dạng cho mọi cột, chúng ta có thể chuyển một kiểu cho
jupyter notebook
7. e. g. chúng tôi có thể giới hạn mỗi cột ở 2 chữ số thập phân, như hình bên dướijupyter notebook
3Ghi chú
Để biết mô tả về các giá trị định dạng hợp lệ, hãy xem tài liệu hoặc Sách hướng dẫn định dạng chuỗi Python
jupyter notebook
0Điều đó không hiệu quả vì cột
jupyter notebook
8 chứa các giá trị chuỗi, không thể định dạng dưới dạng số. Chúng ta có thể giải quyết vấn đề đó bằng cách bỏ cột jupyter notebook
8jupyter notebook
1bàn số 3. Kết quảDân sốTỷ lệ phần trămĐã tiêm phòng0
72179. 00
0. 23
1
77988. 00
0. 22
2
70832. 00
0. 18
Điều này hoạt động, nhưng chúng tôi đã mất cột
jupyter notebook
8 và cột jupyter notebook
5 không được định dạng theo cách chúng tôi muốn. Thay vì chuyển một kiểu duy nhất cho jupyter notebook
7, thay vào đó, chúng ta có thể chuyển một từ điển của import pandas as pd
3. Vì vậy, để tạo kiểu cho jupyter notebook
5 với dấu phẩy là dấu phân cách hàng nghìn và jupyter notebook
6 với hai chữ số thập phân, chúng ta có thể thực hiện như saujupyter notebook
2Bảng 4. Kết quảTên LTLADân sốPhần trămĐã tiêm phòng0
Thung lũng hổ phách
72,179
0. 23
1
cánh đồng tro
77,988
0. 22
2
luật basset
70,832
0. 18
Và nếu tiến thêm một bước nữa, chúng ta cũng có thể sử dụng hàm
import pandas as pd
6 để loại bỏ cột chỉ mụcjupyter notebook
3Bảng 5. Kết quảTên LTLADân sốPhần trămĐã tiêm phòngThung lũng hổ phách
72,179
0. 23
cánh đồng tro
77,988
0. 22
luật basset
70,832
0. 18
- Tumblr
- Google+
- Túi
Giới thiệu về tác giả Tôi hiện đang làm việc về phân tích người dùng theo thời gian thực với Apache Pinot tại StarTree. Tôi xuất bản các video ngắn 5 phút hướng dẫn cách giải quyết vấn đề về dữ liệu trên YouTube @LearnDataWithMark. Trước đây tôi đã làm việc về phân tích biểu đồ tại Neo4j, nơi tôi cũng là đồng tác giả của Sách thuật toán đồ thị O'Reilly với Amy Hodler