Tính phần trăm thay đổi khung dữ liệu python

Để 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 –

Tính phần trăm thay đổi khung dữ liệu python
Tính phần trăm thay đổi khung dữ liệu python

Ví dụ –

Hãy đọc một tập dữ liệu để làm việc với

import pandas as pd

url = 'https://raw.githubusercontent.com/bprasad26/lwd/master/data/ICICIBANK.NS.csv'
df = pd.read_csv(url)
df.head()
Tính phần trăm thay đổi khung dữ liệu python
Tính phần trăm thay đổi khung dữ liệu python

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()
Tính phần trăm thay đổi khung dữ liệu python
Tính phần trăm thay đổi khung dữ liệu python

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

Ví 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()
0

Mã Python-Pandas

df['Open'].pct_change()
1

đầu ra

import numpy as np
import pandas as pd
s = pd.Series([80, 81, 75])
s
0

Ví 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
2

Mã 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
4

Ví 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()
7

Tính phần trăm thay đổi khung dữ liệu python

Phầ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

Tính phần trăm thay đổi khung dữ liệu python

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()
8

Tính phần trăm thay đổi khung dữ liệu python

Tỷ 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

Tính phần trăm thay đổi khung dữ liệu python

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()
9

Tính phần trăm thay đổi khung dữ liệu python

fill_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ày

Tỷ 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ính phần trăm thay đổi khung dữ liệu python

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 theo

Series.pct_change(self, periods=1, fill_method='pad', limit=None, freq=None, **kwargs)
5

Tính phần trăm thay đổi khung dữ liệu python

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

Tính phần trăm thay đổi khung dữ liệu python

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

Tính phần trăm thay đổi khung dữ liệu python

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

Tính phần trăm thay đổi khung dữ liệu python

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