Cột định dạng Python dưới dạng tiền tệ

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òng

0

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òng

0

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
4

df.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
6

jupyter notebook
0

đầu ra

jupyter notebook
1

Vì 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ưới

jupyter notebook
3

Ghi 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
8

jupyter notebook
1

bàn số 3. Kết quảDân sốTỷ lệ phần trămĐã tiêm phòng

0

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ư sau

jupyter notebook
2

Bảng 4. Kết quảTên LTLADân sốPhần trămĐã tiêm phòng

0

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ục

jupyter notebook
3

Bảng 5. Kết quảTên LTLADân sốPhần trămĐã tiêm phòng

Thung lũng hổ phách

72,179

0. 23

cánh đồng tro

77,988

0. 22

luật basset

70,832

0. 18

  • E-mail
  • Facebook
  • Twitter
  • LinkedIn
  • Tumblr
  • reddit
  • Google+
  • Pinterest
  • 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

Chủ Đề