Để tính phần trăm thay đổi trong gấu trúc, chúng ta sử dụng phương thức pct_change[]. Bạn có thể tính phần trăm thay đổi cho một chuỗi hoặc khung dữ liệu. Theo mặc định, phương thức pct_change[] tính toán Tỷ lệ phần trăm thay đổi giữa phần tử hiện tại và phần tử trước đó
Công thức phần trăm thay đổi –
Ví dụ –
Hãy đọc một tập dữ liệu để làm việc với
import pandas as pd
url = '//raw.githubusercontent.com/bprasad26/lwd/master/data/ICICIBANK.NS.csv'
df = pd.read_csv[url]
df.head[]
1. Tính phần trăm thay đổi dọc theo trục chỉ số –
Theo mặc định, phương thức pct_change[] tính phần trăm thay đổi cho một cột
Giả sử chúng ta muốn tính phần trăm thay đổi cho cột Mở
df['Open'].pct_change[]
Dấu chấm –
Theo mặc định, gấu trúc sử dụng hàng hiện tại và các hàng trước đó để tính phần trăm thay đổi. Nhưng bạn có thể thay đổi nó bằng tham số thời gian
Tính phần trăm thay đổi từ hàng ngay trước đó theo mặc định. Điều này hữu ích trong việc so sánh tỷ lệ phần trăm thay đổi trong chuỗi thời gian của các yếu tố
cú pháp
Series.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]
Thông số.
NameDescriptionType/Default ValueRequired / OptionalperiodsPeriods thay đổi để hình thành thay đổi phần trăm. int
Giá trị mặc định. 1Requiredfill_methodCách xử lý NA trước khi tính toán phần trăm thay đổi. str
Giá trị mặc định. ‘pad’RequiredlimitSố lượng NA liên tiếp cần lấp đầy trước khi dừng. int
Giá trị mặc định. Không yêu cầu tần số Tăng dần để sử dụng từ API chuỗi thời gian [e. g. ‘M’ hoặc BDay[]]. Chuỗi bí danh DateOffset, timedelta hoặc offsetTùy chọn**kwargsCác đối số từ khóa bổ sung được chuyển vào DataFrame. thay đổi hoặc Sê-ri. sự thay đổi. Bắt buộc
Trả về. chg - Sê-ri hoặc DataFrame
Cùng loại với đối tượng gọi.
Ví dụ - Sê-ri
Mã Python-Pandas
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
đầu ra
0 80 1 81 2 75 dtype: int64
Mã Python-Pandas.
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s.pct_change[]
đầu ra
0 NaN 1 0.012500 2 -0.074074 dtype: float64
Mã Python-Pandas
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s.pct_change[periods=2]
đầu ra
________số 8Ví dụ - Xem phần trăm thay đổi trong Sê-ri khi lấp đầy NA bằng quan sát hợp lệ cuối cùng chuyển sang hợp lệ tiếp theo
Mã Python-Pandas
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, None, 75]]
s
đầu ra
df['Open'].pct_change[]
0Mã Python-Pandas
df['Open'].pct_change[]
1đầu ra
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
0Ví dụ - Khung dữ liệu
Phần trăm thay đổi trong đồng franc Pháp, Deutsche Mark và lira của Ý từ 2000-01-01 đến 2000-03-01
Mã Python-Pandas
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
1đầu ra
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
2Mã Python-Pandas
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
3đầu ra
import numpy as np
import pandas as pd
s = pd.Series[[80, 81, 75]]
s
4Ví dụ - Phần trăm thay đổi về khối lượng cổ phiếu GOOG và APPL. Hiển thị tính toán phần trăm thay đổi giữa các cột
Vì vậy, bạn muốn tìm phần trăm thay đổi trong dữ liệu của mình. Vâng, đó là một cách để thể hiện sự thay đổi của một biến trong một khoảng thời gian và nó được sử dụng nhiều khi bạn đang phân tích hoặc so sánh dữ liệu. Trong bài đăng này, chúng ta sẽ xem cách tính phần trăm thay đổi bằng cách sử dụng pandas pct_change[] api và cách nó có thể được sử dụng với các tập dữ liệu khác nhau bằng các đối số khác nhau của nó
Theo tài liệu, định nghĩa của phương thức pandas pct_change và các tham số của nó như được hiển thị
pct_change_[self, period=1, fill_method=’pad’, limit=None, freq=None,] _
Chu kỳ. int, mặc định 1 Khoảng thời gian để thay đổi để hình thành thay đổi phần trăm
fill_method. str, 'pad' mặc định Cách xử lý NA trước khi tính toán phần trăm thay đổi
giới hạn. int, default Không có Số lượng NA liên tiếp cần điền trước khi dừng
tần số. Chuỗi bí danh DateOffset, timedelta hoặc offset, Phần tăng tùy chọn để sử dụng từ API chuỗi thời gian [e. g. ‘M’ hoặc BDay[]]
Trước khi chúng ta tìm hiểu sâu hơn về cách sử dụng pct_change, Hãy hiểu cách tính phần trăm thay đổi trên các hàng và cột của một khung dữ liệu
Tạo một khung dữ liệu
df['Open'].pct_change[]
7Phần trăm thay đổi giữa các hàng
Sau đây chúng ta sẽ tìm hiểu phần trăm thay đổi giữa các hàng. Chúng tôi muốn tìm hiểu sự thay đổi phần trăm về giá trị cho tất cả các chỉ mục trên các cột A, B và C. Ví dụ. phần trăm thay đổi giữa Cột A và B tại chỉ số 0 được đưa ra theo công thức sau
Trong đó B0 là giá trị của cột B tại chỉ số 0 và A0 là giá trị tại cột A
df['Open'].pct_change[]
8Tỷ lệ phần trăm thay đổi giữa hai cột
Hàng đầu tiên sẽ là NaN vì đó là giá trị đầu tiên cho cột A, B và C. Phần trăm thay đổi giữa các cột được tính theo công thức
Trong đó A1 là giá trị của cột A tại chỉ số 0 và A1 là giá trị tại chỉ số 1
df['Open'].pct_change[]
9fill_method trong pct_change
Điều này được sử dụng để điền các giá trị NaN vào dữ liệu, có hai tùy chọn tôi. e. pad và bfill mà bạn có thể chọn để điền các giá trị NaN vào dữ liệu của mình, Theo mặc định, giá trị đó là
df['Open'].pct_change[]
80, có nghĩa là các giá trị NaN trong dữ liệu sẽ được điền bởi giá trị từ hàng hoặc cột trước đó trong khi df['Open'].pct_change[]
81 viết tắt của chèn lấp có nghĩa là NaN Có một đối số khác là
df['Open'].pct_change[]
82 được sử dụng để quyết định số lượng giá trị NaN mà bạn muốn điền bằng các phương thức nàyTỷ lệ phần trăm thay đổi đối với dữ liệu chuỗi thời gian
Trong dữ liệu chuỗi thời gian của chúng tôi, chúng tôi có chỉ mục ngày với tần suất hàng ngày
Series.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]3
tần số trong pct_change[]
Vì vậy, bằng cách sử dụng đối số
df['Open'].pct_change[]
83, bạn có thể tìm thấy phần trăm thay đổi cho bất kỳ giá trị timedelta nào, Giả sử sử dụng khung dữ liệu này, bạn muốn tìm hiểu phần trăm thay đổi sau mỗi 5 ngày, sau đó đặt tần số là 5D. Năm hàng đầu tiên là NaN vì không có dữ liệu 5 ngày trước cho các giá trị này để tìm thay đổi pct. Chỉ chúng tôi mới có thể bắt đầu với hàng thứ 6 có thể so sánh với hàng đầu tiên để tìm thay đổi pct trong 5 ngày và tương tự, chúng tôi có thể nhận pct_change cho các hàng tiếp theoSeries.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]5
pct_change[] hàng tháng trong dữ liệu chuỗi thời gian
Với cùng một chuỗi thời gian, hãy tìm hiểu cách tìm thay đổi pct hàng tháng trong các giá trị này. Trước tiên, chúng tôi cần lấy Dữ liệu cho ngày cuối cùng của mỗi tháng. Vì vậy, chúng tôi sẽ lấy mẫu lại dữ liệu để chuyển đổi tần suất và đặt quy tắc là 'BM' i. e. Tháng kinh doanh
Series.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]6
Bây giờ hãy áp dụng pct_change[] trên dữ liệu này để tìm ra phần trăm thay đổi hàng tháng
Series.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]7
nếu bạn muốn thay đổi tỷ lệ phần trăm hàng tháng cho các tháng chỉ có ngày cuối cùng
Series.pct_change[self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs]8
pct_change trong nhóm
Bạn cũng có thể tìm phần trăm thay đổi trong mỗi nhóm bằng cách áp dụng pct_change[] trên đối tượng groupby. Giá trị đầu tiên trong pct_change[] cho mỗi nhóm là NaN vì chúng tôi chỉ muốn tìm phần trăm thay đổi trong mỗi nhóm