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ộtNhậ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à SQLdf = 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ớiHà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àmVí 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]
1nhấ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