Python tính phần trăm chênh lệch giữa hai số

Khi làm việc với các khung dữ liệu Pandas, nhiệm vụ rất phổ biến là tính toán sự khác biệt giữa hai hàng. Ví dụ: bạn có thể muốn tính chênh lệch về số lượng khách truy cập vào trang web của mình giữa hai ngày hoặc chênh lệch giá cổ phiếu giữa hai ngày

Thực tế, có một số cách khác nhau để tính toán sự khác biệt giữa hai hàng trong Pandas và tính phần trăm thay đổi của chúng. Trong bài đăng này, chúng ta sẽ xem xét hai trong số các phương pháp phổ biến nhất.


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
2 và

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
3, được thiết kế dành riêng cho tác vụ này và thực hiện điều tương tự trên các giá trị cột

Nhập dữ liệu

Để bắt đầu, hãy mở sổ ghi chép Jupyter mới và nhập dữ liệu. Chúng tôi sẽ sử dụng thư viện


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
4 để đọc dữ liệu từ tệp CSV vào khung dữ liệu bằng hàm

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
5. Pandas hỗ trợ nhập dữ liệu từ một số định dạng tệp khác nhau, bao gồm CSV, Excel, JSON và SQL

df = pd.read_csv['//raw.githubusercontent.com/flyandlure/datasets/master/causal_impact_dataset.csv']
df.head[]

dateclicksimpressionsctrposition02021-07-0413663012. 1631. 9712021-07-0526486973. 0427. 6622021-07-0629992363. 2426. 3832021-07-07276100082. 7626. 7742021-07-0828397252. 9125. 83

Tính toán sự khác biệt giữa mỗi hàng bằng cách sử dụng diff[]

Điều quan trọng, bạn cần đảm bảo khung dữ liệu Pandas của mình đã được sắp xếp theo thứ tự hợp lý trước khi bạn tính toán sự khác biệt giữa các hàng hoặc phần trăm thay đổi của chúng. Bạn có thể làm điều này bằng cách nối thêm


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
6 vào cuối khung dữ liệu của mình và chuyển vào tên cột mà bạn muốn sắp xếp theo

Để tính toán sự khác biệt giữa các giá trị đã chọn trong mỗi hàng của khung dữ liệu của chúng tôi, chúng tôi chỉ cần thêm


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
7 vào cuối tên cột của chúng tôi và sau đó gán giá trị cho một cột mới trong khung dữ liệu của chúng tôi. Chúng tôi không cần phải làm điều đó ở đây, nhưng tham số

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
0 có thể được sử dụng để tính toán sự khác biệt giữa các cột thay vì hàng và tham số

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
1 có thể được sử dụng để tính toán sự khác biệt giữa các hàng cách xa nhau hơn so với hàng tiếp theo bằng cách sử dụng


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]

dateclicksimpressionsctrpositi titles_diffimpressions_diffctr_diffposition_diff02021-07-0413663012. 1631. 97NaNNaNNaNNaN12021-07-0526486973. 0427. 66128. 02396. 00. 88-4. 3122021-07-0629992363. 2426. 3835. 0539. 00. 20-1. 2832021-07-07276100082. 7626. 77-23. 0772. 0-0. 480. 3942021-07-0828397252. 9125. 837. 0-283. 00. 15-0. 9452021-07-0920582732. 4827. 65-78. 0-1452. 0-0. 431. 8262021-07-1010671861. 4833. 74-99. 0-1087. 0-1. 006. 0972021-07-1116474312. 2131. 7558. 0245. 00. 73-1. 9982021-07-12316111012. 8526. 94152. 03670. 00. 64-4. 8192021-07-13314114942. 7326. 90-2. 0393. 0-0. 12-0. 04

Tính phần trăm thay đổi giữa mỗi hàng với pct_change[]

Cách tiếp cận tương tự có thể được sử dụng để tính phần trăm thay đổi giữa các giá trị được chọn trong mỗi hàng của khung dữ liệu của chúng tôi. Như với


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
2, chúng tôi chỉ cần thêm

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
4 vào cuối tên cột và sau đó gán giá trị cho một cột mới

Hàm


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
3 sẽ tính phần trăm thay đổi giữa mỗi hàng và hàng trước đó. Điều này có nghĩa là hàng đầu tiên sẽ luôn là

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
6 vì không có hàng nào trước đó để so sánh với. Như với

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
2, hàm

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
3 có một số đối số khác có thể được sử dụng để thay đổi hành vi của hàm

Ví dụ: chúng ta có thể sử dụng đối số


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
1 để chỉ định số lượng hàng cần so sánh với. Điều này hữu ích nếu chúng ta muốn so sánh hàng hiện tại với một hàng không phải là hàng trước đó. Ví dụ: nếu chúng tôi muốn so sánh hàng hiện tại với hàng cách đây 3 hàng, chúng tôi có thể sử dụng
df['clicks_pct_change'] = df['clicks'].pct_change[]
df['impressions_pct_change'] = df['impressions'].pct_change[]
df['ctr_pct_change'] = df['ctr'].pct_change[]
df['position_pct_change'] = df['position'].pct_change[]
df.head[10]
0

________số 8

dateclicksimpressionsctrpositi titles_diffimpressions_diffctr_diffposition_diffclicks_pct_changeimpressions_pct_changectr_pct_changeposition_pct_change02021-07-0413663012. 1631. 97NaNNaNNaNNaNNaNNaNNaN12021-07-0526486973. 0427. 66128. 02396. 00. 88-4. 310. 9411760. 3802570. 407407-0. 13481422021-07-0629992363. 2426. 3835. 0539. 00. 20-1. 280. 1325760. 0619750. 065789-0. 04627632021-07-07276100082. 7626. 77-23. 0772. 0-0. 480. 39-0. 0769230. 083586-0. 1481480. 01478442021-07-0828397252. 9125. 837. 0-283. 00. 15-0. 940. 025362-0. 0282770. 054348-0. 03511452021-07-0920582732. 4827. 65-78. 0-1452. 0-0. 431. 82-0. 275618-0. 149306-0. 1477660. 07046162021-07-1010671861. 4833. 74-99. 0-1087. 0-1. 006. 09-0. 482927-0. 131391-0. 4032260. 22025372021-07-1116474312. 2131. 7558. 0245. 00. 73-1. 990. 5471700. 0340940. 493243-0. 05898082021-07-12316111012. 8526. 94152. 03670. 00. 64-4. 810. 9268290. 4938770. 289593-0. 15149692021-07-13314114942. 7326. 90-2. 0393. 0-0. 12-0. 04-0. 0063290. 035402-0. 042105-0. 001485

Tính phần trăm thay đổi so với cùng ngày tuần trước

Để tính phần trăm thay đổi trong một số liệu so với cùng ngày của tuần trước, chúng ta có thể chuyển một giá trị cho đối số


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
1 của hàm

```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
3. Điều này sẽ tính phần trăm thay đổi trong chỉ số so với cùng ngày của tuần trước


```python
df['clicks_diff'] = df['clicks'].diff[]
df['impressions_diff'] = df['impressions'].diff[]
df['ctr_diff'] = df['ctr'].diff[]
df['position_diff'] = df['position'].diff[]
df.head[10]
1

nhấp chuộtclicks_pct_change_weekimpressionsimpressions_pct_change_weekctrctr_pct_change_weekpositionposition_pct_change_week184240. 452055159880. 3670802. 650. 06000026. 65-0. 026662193570. 469136145900. 3435862. 450. 09375026. 92-0. 094517202560. 651613119870. 5485082. 140. 07000030. 34-0. 081997212570. 502924122270. 3650782. 100. 09947629. 55-0. 054097224710. 539216159340. 2329002. 960. 24894524. 28-0. 104390234620. 350877155160. 1913392. 980. 13308024. 55-0. 051757244180. 208092155900. 1040292. 680. 09387824. 90-0. 058245254770. 125000168420. 0534152. 830. 06792523. 83-0. 10581626340-0. 04761913867-0. 0495542. 450. 00000026. 18-0. 02748927194-0. 2421889749-0. 1867021. 99-0. 07009331. 420. 035597

Chủ Đề