Trong hướng dẫn này, chúng ta sẽ xem cách tính phần trăm thay đổi cho các giá trị trong mỗi cột. Theo mặc định, hàm pct_change[] của Pandas sẽ tính phần trăm thay đổi cho mỗi giá trị trong một cột khi so sánh với phần tử trước đó trong cột. Một cách khác để suy nghĩ là
Tính phần trăm thay đổi so với hàng ngay trước đó
Hàm pct_change[] của Pandas cực kỳ tiện dụng để so sánh phần trăm thay đổi trong dữ liệu chuỗi thời gian
Trước tiên, hãy để chúng tôi tải thư viện Pandas và tạo một số dữ liệu chuỗi thời gian đồ chơi
import pandas as pd
Hãy để chúng tôi tạo một khung dữ liệu với thu nhập của các công ty công nghệ hàng đầu trong bốn năm qua. Chúng tôi có thu nhập trên mỗi công ty dưới dạng danh sách
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]
Chúng ta có thể tạo một khung dữ liệu Pandas từ bốn danh sách này
df = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]
Trong dữ liệu chuỗi thời gian đồ chơi của chúng tôi, chúng tôi có ba cột [công ty] và năm làm chỉ mục
df facebook google microsoft 2017 15934000000 12662000000 25489000000 2018 22112000000 30736000000 16571000000 2019 18485000000 34343000000 39240000000 2020 29146000000 40269000000 44281000000
Pandas hàm pct_change[] để tính phần trăm thay đổi
Chúng ta có thể sử dụng hàm pct_change[] và tính tỷ lệ phần trăm thay đổi trong doanh thu của mỗi công ty so với năm trước
df.pct_change[]
Bạn có thể thấy rằng hàng đầu tiên là NaN vì không có gì trước đó. Và đối với các hàng còn lại, chúng tôi có phần trăm thay đổi về thu nhập so với năm trước
facebook google microsoft 2017 NaN NaN NaN 2018 0.387724 1.427421 -0.349876 2019 -0.164029 0.117354 1.367992 2020 0.576738 0.172553 0.128466
Theo mặc định, hàm pct_change[] tính toán bằng các hàng
df.pct_change[axis='rows']
Chúng ta cũng có thể tính phần trăm thay đổi đối với các cột bằng cách sử dụng đối số axis=”columns”. Trong ví dụ này, do phần trăm thay đổi đối với cột không có ý nghĩa, nên chúng tôi chuyển đổi khung dữ liệu trước khi sử dụng pct_change[]
df.T.pct_change[axis="columns"] 2017 2018 2019 2020 facebook NaN 0.387724 -0.164029 0.576738 google NaN 1.427421 0.117354 0.172553 microsoft NaN -0.349876 1.367992 0.128466
Chúng tôi cũng có thể chỉ định những hàng nào chúng tôi muốn sử dụng để tính phần trăm thay đổi bằng cách sử dụng đối số "thời gian". Ví dụ: để tính phần trăm thay đổi đối với hai năm hoặc các hàng trước đó, chúng tôi sử dụng đối số “period=2”. Ở đây về cơ bản chúng tôi so sánh thu nhập từ năm 2019 đến 2017 và 2020 đến 2020. Vì điều này, chúng tôi có NaN ở hai hàng đầu tiên. Đối số này cực kỳ hữu ích để so sánh thu nhập hàng quý/thay đổi doanh thu
________số 8Tính phần trăm thay đổi với dữ liệu bị thiếu với pct_change[]
Một tính năng hữu ích khác của hàm pct_change[] là nó có thể xử lý dữ liệu bị thiếu. Hãy để chúng tôi tạo một danh sách với các giá trị bị thiếu
google= [12662, 30736, None, 40269] year=[2017, 2018, 2019, 2020] facebook =[15934, 22112, 18485, 29146] microsoft= [25489, 16571, 39240, 44281]
Chúng ta có thể tạo một khung dữ liệu bằng cách sử dụng danh sách có các giá trị bị thiếu
df = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]
Chúng ta có thể thấy rằng cột Google có một giá trị bị thiếu
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]1
Theo mặc định, pct_change[] xử lý dữ liệu bị thiếu và sử dụng phương thức “bfill”, sử dụng “quan sát hợp lệ tiếp theo để lấp đầy khoảng trống”
Để tính tỷ lệ phần trăm giữa hai số, hãy chia một số cho số kia và nhân kết quả với 100, e. g.
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]2. Điều này cho thấy số phần trăm thứ nhất là bao nhiêu phần trăm của số thứ hai. Trong ví dụ,
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]3 là
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]4 của
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]5
Hàm đầu tiên lấy 2 số và trả về số phần trăm của số thứ nhất so với số thứ hai
Ví dụ,
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]6 cho thấy rằng
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]7 là
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]8 của
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]9
Khi tính tỷ lệ phần trăm giữa hai số, bạn có thể cần làm tròn đến một số chữ số cụ thể sau dấu thập phân
Hàm round nhận 2 tham số sau
Tên Mô tảdf = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]0số cần làm tròn thành ____21độ chính xác sau dấu thập phân
df = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]1số chữ số sau dấu thập phân mà số đó phải có sau phép toán [tùy chọn]
Hàm
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]31 trả về số được làm tròn thành độ chính xác của
df = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]1 sau dấu thập phân
Nếu bỏ qua
df = pd.DataFrame[{"facebook":facebook, "google": google, "microsoft": microsoft}, index=year]1, hàm trả về số nguyên gần nhất
Hàm thứ hai cho biết cách lấy phần trăm tăng/giảm giữa hai số
Ví dụ đầu tiên cho thấy phần trăm tăng từ
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]3 lên
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]9 là
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]36
Và phần thứ hai cho thấy phần trăm tăng từ
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]37 lên
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]9 là
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]39
Nếu bạn luôn cần lấy số dương, hãy sử dụng hàm
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]40
Hàm abs trả về giá trị tuyệt đối của một số. Nói cách khác, nếu số dương, số được trả về và nếu số âm, phủ định của số được trả về
Bằng cách này, chúng tôi luôn được đảm bảo nhận được một số dương tính toán sự khác biệt về tỷ lệ phần trăm giữa hai số
Một cái gì đó bạn có thể muốn xử lý là chia cho
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]41. Chia cho
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]41 tăng một
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]43 trong Python
Chúng tôi có thể xử lý lỗi trong khối
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]44
Nếu chúng tôi gặp lỗi
year=[2017, 2018, 2019, 2020] facebook =[15934000000, 22112000000, 18485000000, 29146000000] google= [12662000000, 30736000000, 34343000000, 40269000000] microsoft= [25489000000, 16571000000, 39240000000, 44281000000]43, chúng tôi sẽ trả về Infinity, tuy nhiên, bạn có thể xử lý lỗi theo bất kỳ cách nào khác phù hợp với trường hợp sử dụng của mình