Blog

Xử lý dữ liệu với Pandas trong Python

Xử lý dữ liệu với Pandas

Pandas là một Python thư viện cung cấp nhanh dữ liệu cấu trúc, mạnh mẽ, linh hoạt và mang ý nghĩa hàm. Thư viện tên được bắt nguồn từ dữ liệu bảng (table data). Pandas được thiết kế để làm việc dễ dàng và trực tiếp với dữ liệu có cấu trúc (bảng dạng, đa chiều, có đồng nhất năng lực) và thời gian chuỗi dữ liệu.

Mục tiêu của pandas là trở thành khối căn bản (building block) cấp cao cơ bản cho công việc thực tế, phân tích dữ liệu thế giới thực trong Python, và rộng hơn là trở thành công cụ thao tác / phân tích mã nguồn mở mạnh mẽ và linh hoạt nhất có sẵn trong bất kỳ loại ngôn ngữ lập trình nào.

>>Đọc thêm tại đây:

LỘ TRÌNH TRỞ THÀNH DATA ANALYST CHUYÊN GIA PHÂN TÍCH DỮ LIỆU

LỘ TRÌNH THĂNG TIẾN CỦA MỘT CHUYÊN GIA PHÂN TÍCH DỮ LIỆU (DATA ANALYST)

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER TỪ CƠ BẢN TỚI NÂNG CAO

1. Vì sao bạn nên chọn pandas?

Pandas rất phù hợp với nhiều loại dữ liệu khác nhau:

  • Bảng dạng dữ liệu với các cột được nhập không đồng nhất, chẳng hạn như trong bảng SQL hoặc bảng Excel.
  • Thời gian chuỗi dữ liệu theo thứ tự và không có thứ tự (thiết bị nhất định phải có cố định tần số).
  • Tùy chọn ma trận dữ liệu (được nhập đồng nhất hoặc không đồng nhất) với hàng và cột của nhãn.
  • Bất kỳ sự khác biệt định dạng của hệ thống quan sát / thống kê dữ liệu. Thực tế dữ liệu không cần phải được dán nhãn vào gấu trúc dữ liệu cấu trúc.
  • Pandas được xây dựng dựa trên NumPy. Hai gấu trúc chính dữ liệu cấu trúc là

Ưu tiên của Pandas:

  • Dễ dàng xử lý dữ liệu mất mát, được biểu thị dưới dạng NaN, trong dữ liệu dấu phẩy động cũng như dấu phẩy tĩnh theo ý người dùng mong muốn: bỏ qua hoặc chuyển sang 0
  • Khả năng thay đổi kích thước: các cột có thể được chèn và xóa khỏi DataFrame và các đối tượng chiều cao hơn
  • Căn chỉnh dữ liệu tự động và rõ ràng: các đối tượng có thể được căn chỉnh rõ ràng với một bộ nhãn hoặc người dùng chỉ cần bỏ qua các nhãn và để DataFrame, v.v. tự động căn chỉnh dữ liệu cho bạn trong các tính toán
  • Chức năng group by mạnh mẽ, linh hoạt để thực hiện các hoạt động kết hợp phân tách áp dụng trên các tập dữ liệu, cho cả dữ liệu tổng hợp và chuyển đổi
  • Dễ dàng chuyển đổi dữ liệu rời rạc (ragged), chỉ mục khác nhau (differently-indexed) trong các cấu trúc dữ liệu khác của Python và NumPy thành các đối tượng DataFrame
  • Cắt lát (slicing) thông minh dựa trên nhãn, lập chỉ mục ưa thích (fancy indexing) và tập hợp lại (subsetting) các tập dữ liệu lớn 
  • Gộp (merging) và nối (joining) các tập dữ liệu trực quan
  • Linh hoạt trong định hình lại (reshaping) và xoay (pivoting) các tập dữ liệu
  • Dán nhãn phân cấp (hierarchical) của các trục (có thể có nhiều nhãn trên mỗi đánh dấu)
  • Các công cụ IO mạnh mẽ để tải dữ liệu từ các tệp phẳng (flat file) như CSV và delimited, tệp Excel, cơ sở dữ liệu và lưu / tải dữ liệu từ định dạng HDF5 cực nhanh
  • Chức năng theo chuỗi thời gian (time series) cụ thể: tạo phạm vi ngày và chuyển đổi tần số, thống kê cửa sổ di chuyển, dịch chuyển ngày và độ trễ.
  • Tích hợp tốt với các thư viện khác của python như SciPy, Matplotlib, Plotly, v.v.
  • Hiệu suất tốt

2. Cài đặt thư viện Pandas

  •  Sử dụng pip và gõ lệnh: pip install pandas
  •  Hoặc bằng Anaconda, dùng lệnh: conda install pandas

Để tìm các cách cài đặt pandas khác bạn hãy xem thêm tại ĐÂY.
Lưu ý: Bạn cần cài đặt thư viện NumPy trước (nếu bạn cài bằng Anaconda thì NumPy đã có sẵn).

3. Khai báo thư viện Pandas

import pandas as pd 
Bạn không nên thay đổi từ pd bằng từ khác vì các tài liệu hướng dẫn đều ngầm quy ước như vậy.

Trong phạm vi bài viết này mình sẽ giới thiệu về các xử lý dữ liệu cho 2 cấu trúc dữ liệu cơ bản trong pandas.

4. Thao tác với cấu trúc dữ liệu cơ bản

Pandas có 2 cấu trúc dữ liệu cơ bản là:

  • Series (1 chiều)
  • DataFrame (2 chiều).

Panel (3 chiều) từng là một cấu trúc dữ liệu trong pandas trước khi bị gỡ bỏ từ phiên bản 0.25. Bạn có thể tham khảo về panel ở phiên bản 0.24.

4.1. Series

Series([data, index, dtype, name, copy, . . . ])

Là mảng một chiều giống như mảng Numpy, hay như một cột của một bảng, nhưng nó bao gồm thêm một bảng đánh label. Series có thể được khởi tạo thông qua NumPy, kiểu Dict hoặc các dữ liệu vô hướng bình thường. Series có nhiều thuộc tính như index, array, values, dtype, v.v.

Bạn có thể thực hiện chuyển đổi Series sang dạng dtype xác định, tạo bảng copy, trả về dạng bool của một thành phần, chuyển Series từ DatetimeIndex sang PeriodIndex, v.v.

Một số ví dụ:

Tạo Series

Ví dụ 1: Không truyền index

import pandas as pd

s = pd.Series([0,1,2,3])
print(s)

Output: 

0    0
1    1
2    2
3    3
dtype: int64

pandas sẽ mặc định truyền indextừ 0 đến len(data)-1.
Ví dụ 2: Có truyền index

import pandas as pd

s = pd.Series([0,1,2,3], index=["a","b","c","d"])
print(s)


Output:

a    0
b    1
c    2
d    3
dtype: int64

Ví dụ 3: Tạo Series từ dict

import pandas as pd

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])
print(ser)

Output:

a    -1.3
c     NaN
b    11.7
d     2.0
e     NaN
f    10.0
dtype: float64

Chúng ta tạo dict có index a, b, d, f, g. Sau đó tạo Series từ dict data này nhưng các index c và e không có trong dict nên dữ liệu tại các index này bị thiếu (missing data). pandas hiển thị NaN để báo các dữ liệu này bị trống.

Ví dụ 4: Tạo Series từ Scalar 
Nếu dữ liệu là một giá trị scalar, index phải được cung cấp. Giá trị sẽ được lặp lại để phù hợp với độ dài của index.

import pandas as pd

ser = pd.Series(5, index=[1, 2, 3, 4, 5])
print(ser)

Output:

1    5
2    5
3    5
4    5
5    5
dtype: int64

Truy cập dữ liệu từ Series với index và vị trí 
Truy cập dữ liệu của Series tương tự với ndarray trong NumPy.
Ví dụ 5: Lấy dữ liệu tại index cụ thể

import pandas as pd

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])

print(ser['d'])
print(ser['c'])

Output:

2.0
nan

Ví dụ 6: Lấy dữ liệu từ đầu đến vị trí index cụ thể

import pandas as pd

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])

print(ser[:'d'])

Output:

a    -1.3
c     NaN
b    11.7
d     2.0
dtype: float64

Ví dụ 7: Lấy dữ liệu theo vị trí: 2 dữ liệu đầu

import pandas as pd

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])

print(ser[:2])

Output: 

a   -1.3
c    NaN
dtype: float64

Ví dụ 8: Lấy 3 dữ liệu cuối

import pandas as pd

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])

print(ser[-3:])

Output:

d     2.0
e     NaN
f    10.0
dtype: float64

Chuyển đổi sang dạng khác

Ví dụ 9: Lấy dạng array của Series bằng numpy.asarray

import pandas as pd
import numpy as np

data = {'a' : -1.3, 'b' : 11.7, 'd' : 2.0, 'f': 10, 'g': 5}
ser = pd.Series(data,index=['a','c','b','d','e','f'])

a = np.asarray(ser)
print(a)

Output:

[-1.3  nan 11.7  2.   nan 10. ]

Còn rất nhiều thao tác khác mà bạn thực hiện được với Series của pandas tại ĐÂY.

4.2. DataFrame

DataFrame([data, index, columns, dtype, copy])

Dataframe là cấu trúc dữ liệu được gắn nhãn hai chiều với các cột và hàng như bảng tính (spreadsheet) hoặc bảng (table). Giống như Series, DataFrame có thể chứa bất kỳ loại dữ liệu nào. Một điều quan trọng cần làm nổi bật là tất cả các cột trong khung dữ liệu là series Pandas. Vì vậy, một DataFrame là sự kết hợp của nhiều Series đóng vai trò như các cột! DataFrame được sử dụng rộng rãi và là một trong những cấu trúc dữ liệu quan trọng nhất.

Chúng ta hãy bắt đầu với tạo DataFrame
Ví dụ 1: Tạo DataFrame từ dict các Series 1

import pandas as pd

# tạo dict từ các series
s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}

# tại DataFrame từ dict
df = pd.DataFrame(s)

print(df)

Output:

   một  hai
a  1.0  1.0
b  2.0  2.0
c  3.0  3.0
d  NaN  4.0
e  5.0  NaN

Ví dụ 2: Tạo DataFrame từ dict các Series 2

import pandas as pd

# tạo các series
s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}

# tạo DataFrame từ dict theo các index được chọn
df = pd.DataFrame(s, index=['a','c','d'])

print(df)

Output:

   một  hai
a  1.0  1.0
c  3.0  3.0
d  NaN  4.0

Ngoài ra còn nhiều cách tạo DataFrame khác như từ dict các ndarray/list, từ list của dict, từ một Series, v.v. 

4.3. Các thao tác chọn, thêm, xóa cột 

Ví dụ 3: Chọn cột (column selection)

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)

# chọn cột hai
df_hai = df['hai']
print(df_hai)

Output:

a    1.0
b    2.0
c    3.0
d    4.0
e    NaN
Name: hai, dtype: float64

Ví dụ 4: Một số cách thêm cột (column addition)

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)

# thêm cột bốn với giá trị mỗi ô theo công thức
df['bốn'] = df['hai'] - df['ba']

# thêm cột với giá trị vô hướng (scalar value)
df['Chuẩn'] = 'OK'

# thêm cột không cùng số lượng index với DataFrame
df['Khác'] = df['hai'][:3]

# thêm cột True/False theo điều kiện
df['KT'] = df['một'] == 3.0

# dùng hàm insert. Cột "chèn" bên dưới sẽ ở vị trí 2 (tính từ 0), có giá trị bằng cột một
df.insert(2, 'chèn', df['một'])

print(df)

Output:

   một  hai  chèn    ba   bốn Chuẩn  Khác     KT
a  1.0  1.0   1.0   9.0  -8.0    OK   1.0  False
b  2.0  2.0   2.0  -1.3   3.3    OK   2.0  False
c  3.0  3.0   3.0   3.5  -0.5    OK   3.0   True
d  NaN  4.0   NaN  41.1 -37.1    OK   NaN  False
e  5.0  NaN   5.0   NaN   NaN    OK   NaN  False

Ví dụ 5: Xóa cột (column deletion)
Có thể xóa cột bằng lệnh def hoặc hàm pop

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)

# xóa cột hai
del df['hai']

# pop cột ba với dict tv_ba
tv_ba = df.pop('ba')

print( df)

Output:

   một
a  1.0
b  2.0
c  3.0
d  NaN
e  5.0

Lập chỉ mục/ lựa chọn

Những điều cơ bản của việc lập chỉ mục như sau

Thi hànhCú phápKết quả
Chọn cộtdf[col]Series
Chọn dòng theo labeldf.loc[label]Series
Chọn dòng theo vị trí nguyêndf.iloc[loc]Series
Cắt các dòngdf[3:7]DataFrame
Chọn các dòng theo vector booleandf[bool_vector]DataFrame

Ví dụ 1: Chọn dòng theo label

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)

# chọn dòng theo label
d = df.loc['a']

print(d)

Output:

một    1.0
hai    1.0
ba     9.0
Name: a, dtype: float64

Ví dụ 2: Chọn dòng theo vị trí nguyên

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)

# chọn dòng theo vị trí nguyên
d = df.iloc[4]

print(d)

Output:

một    5.0
hai    NaN
ba     NaN
Name: e, dtype: float64

Ví dụ 3: Cắt (slice) các dòng

import pandas as pd

s = {'một': pd.Series([1., 2., 3., 5.], index=['a', 'b', 'c', 'e']),
     'hai': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd']),
     'ba': pd.Series([9., -1.3, 3.5, 41.1], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(s)
# cắt lấy ra từ dòng 3 đến dòng 4
d = df[2:4]

print(d)

Output:

   một  hai    ba
c  3.0  3.0   3.5
d  NaN  4.0  41.1

Bên trên là một số thao tác cơ bản với DataFrame. Ngoài các thao tác với Series và DataFrame, pandas còn rất nhiều các chức năng tuyệt vời khác.

5. Tạm kết

Pandas cung cấp một nền tảng vững chắc để thiết lập một hệ sinh thái phân tích dữ liệu rất mạnh. Sự xuất hiện của thư viện này đã giúp cho Python trở thành một lựa chọn hấp dẫn cho các ứng dụng phân tích dữ liệu. Cảm ơn các bạn đã đọc. Hẹn gặp lại các bạn trong các bài viết tiếp theo.

Nguồn: Internet – Thangtn

>>Đọc thêm tại đây:

LỘ TRÌNH TRỞ THÀNH DATA ANALYST CHUYÊN GIA PHÂN TÍCH DỮ LIỆU

LỘ TRÌNH THĂNG TIẾN CỦA MỘT CHUYÊN GIA PHÂN TÍCH DỮ LIỆU (DATA ANALYST)

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER TỪ CƠ BẢN TỚI NÂNG CAO

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    suarairama pestanada beritabandar rumahjurnal podiumnews dailyinfo wikiberita zonamusiktop musicpromote bengkelpintar liburanyuk jelajahhijau carimobilindonesia jalanjalan-indonesia otomotifmotorindo ngobrol olahraga mabar dapurkuliner radarbandung indosiar radarjawa medianews infowarkop kalbarnews ketapangnews beritabumi kabarsantai outfit faktagosip beritagram lagupopuler seputardigital updatecepat marihidupsehat baliutama hotviralnews cctvjalanan beritajalan beritapembangunan pontianaknews monitorberita koronovirus museros iklanjualbeli festajunina capoeiravadiacao georgegordonfirstnation 1reservoir revisednews

    Dimensi Waktu Baccarat Online Berhasil Merubah Lini Masa Lintas Warna Pelangi Mencatat Fakta Tentang Mahjong Ways 3 dan Baccarat Bukan Sekedar Koneksi Digital Pahami Cara Menarik Keuntungan Lewat Catatan Rtp Harian Baccarat Online Sempurna Rahasia Pola Acak Aztec Gems dan Baccarat Tingkatkan Hasil Kemenangan Berikutnya Catat Logika Cipatakan Rasa Kemenangan Sugar Rush Lebih Manis Dari Taktik Baccarat Instalasi Menangkap Pola Rtp Mahjong Wins 3 Berdampingan Baccarat Online Ciptakan Putaran Ajaib Langkah Maju Minimalis Mahjong Ways Menarik Visual Bikin Hasil Memukau Melampaui Baccarat Trik Simpan Spin Sugar Rush Bangkitkan Pola Tertua Usai Baccarat Menyala Cara Menguasai Pola Jitu Munculkan Black Scatter Berulang Pada Alur Baccarat Trik Mengulur Waktu Sweet Bonanza Terinspirasi Baccarat Mengandung Energi Menang Alami Membangun Pola Rtp Mahjong Wins 3 Tersentuh Ide Baccarat yang Terukur Memaknai Hasil Menang Gates of Olympus Membuka Peta Masuk Dunia Baccarat Manfaat Tersembunyi Teknik Baccarat Online untuk Pembekalan Pemain Baru Menang Istimewa Membuka Halaman Baru Tercipta Pola Sweet Bonanza Saat Muncul Tiruan Menang Baccarat Cara Kerja Sugar Rush Lewat Rotasi Singkat Menuju Getaran Baccarat Sempurna Historia Mahjong Ways 3 Sukses Ciptakan Bentuk Pola Sempurna Setelah Kemenangan Pertama Cara Pahami Pola Rahasia Trik Kemenangan Bonanza dengan Rtp Premium Menang Optimal Perubahan Rtp Mencatat Analisis Baru Mahjong Wins 3 Temukan Waktu Main Terbaik Teknik Fokus Memahami Kecepatan Pola Baccarat Online Lewat Materi Unggulan Sumber Digital Trik Positif Rahasia yang Mampu Merubah Tingkat Kemenangan Sugar Rush Secara Signifikan Memahami Cepat Pola Sederhana Baccarat Online Lewat Pendalaman Jati Diri Pola Baru Mahjong Ways 3 Disusun Secara Kronologis Menciptakan Nuansa Menang Makin Segar Pro Kontra Bonanza dengan Rtp Premium Membantu Adaptasi Cerah Pemain Baru Teknik Mudah Membaca Alur Spin Sugar Rush Menjadi Harmoni Kemenangan yang Bersahabat Cara Membaca Algoritma Sebagai Langkah Menang Konsisten di Spin Perdana Mahjong Wins 3 Kronologi Sugar Rush Merubah Inovasi Teknologi Digital dan Finansial Lebih Baik Pahami Formasi Parkir Bus Terinspirasi Taktik Baccarat Online Dengan Format Kemenangan Penjelajah Lautan Dapat Harta Karun Emas Bonanza Ungkap Warna Kehidupan Dasar Laut Teknik Penguasaan Pola Original Mahjong Ways 3 Bikin Cepat Raih Kejayaan Sempurna Diagnosis Pola Premium Dengan Menyusun Aturan Berlapis Mahjong Wins 3 Menafsirkan Dimensi Baru Mahjong Wins 3 Menggali Peluang Epik Dalam Ekspansi Setiap Putaran Menapaki Jejak Baccarat Online dengan Menghidupkan Rangkaian Pola Frekuensi Keberuntungan Baru Pelajari Warisan Dewa Kuno Menciptakan Pola Sempurna Gates of Olympus Hasilkan Cuan Berlimpah Bongkar Fakta Lukisan Leang Karampuang yang Sembunyikan Simbol Scatter Mahjong Ways 3 Cara Menyalakan Warna Sugar Rush Bikin Spin Makin Spesial dengan Kejutan Energi Menyelami Eksperimen Bonanza dengan Rtp Premium Menemukan Jejak Keberuntungan yang Sempurna Rahasia Baru Cara Sugar Rush Menarik Cepat Kemenangan Total dengan Taktik Positif Ilmuwan Mengintegrasikan Paradigma Baccarat Online yang Bisa Mengubah Cara Menang Buku Emas Etruria Menyimpan Pola Kuno Mahjong Ways Tingkatkan Kemenangan Malam Hari Mengubah Algoritma Spin Mahjong Ways 3 Mampu Hubungkan Keberuntungan jadi Kemenangan Sempurna Tukang Parkir di Semarang Temukan Pola Mahjong Wins 3 Saat Tunggu Pelanggan Keluar dari Indomaret Bu RT Asal Bandung Klaim Dapat Ilham Pola Mahjong Ways 2 Saat Nyapu Halaman Waktu Subuh Satpam Malam Dapat Ide Pola Mahjong Wins 3 Saat Dengarkan Radio Lama di Pos Jaga Ibu Rumah Tangga Dapat Pola Mahjong Wins 3 Saat Anak Minta Uang Jajan di Tengah Masak Sayur Asem Kuli Bangunan Asal Bogor Temukan Pola Mahjong Ways 2 Saat Adu Cepat Ngaduk Semen di Tengah Hujan Mahasiswi Arsitektur Ungkap Pola Mahjong Ways 2 Setelah Gambar Denah yang Bentuknya Mirip Scatter Pedagang Buah Pahami Pola Mahjong Wins 3 Setelah Tahu Pisang Matang Selalu Datang di Hari Jumat Barista Asal Malang Temukan Pola Baccarat Setelah Cappuccino-nya Tumpah Dua Kali Berturut-turut Penjual Cilok Temukan Pola Baccarat Setelah Iseng Catat Nomor Struk Pelanggannya Selama Seminggu Penjual Nasi Uduk Dapati Pola Mahjong Ways 2 Saat Uap Kukusannya Naik Turun Seperti Irama Scatter Cara Evaluasi Sederhana Cepat Kuasai Trik Baccarat Online Secara Tepat dan Terarah Teknik Presisi Mengatur Kecepatan Spin Mahjong Ways 3 Untuk Kenaikan Hasil yang Ideal Cara Intuisi Bekerja Mencatat Pola Baccarat Online Melalui Skema yang Sempurna Langkah Terukur Dalam Mengatur Waktu Baccarat Online Berbalut Mantra Menjemput Kemenangan Banyak yang Rugi Karena Tidak Paham! Taktik RTP SUHUBET yang Sebenarnya RTP Hari Ini Lagi Bagus! Taktik Ini Cuma Dipakai Orang Dalam SUHUBET SUHUBET Kembali Ramai! Info Terkini Soal Pola RTP yang Baru Muncul Pada Permainan Viral Mahjong Info Panas dari SUHUBET! Taktik Perputaran 30-60-15 Makin Banyak Dipakai Pemain Legend Jangan Asal Tekan! Pahami Dulu Taktik Baca Nafas RTP Ini Bikin Perputaran Lebih Nyambung Bukan Sulap Bukan Sihir, Pola Dari RTP SUHUBET Kembali Membawa Kebahagiaan Putaran Tanpa Rugi Meningkatkan Efisiensi dan Keseimbangan Perputaran Mahjong, Amati dan Pelajari Data Analisis yang Dibagikan SUHUBET Heboh Dapat Motor Honda ADV Bermodalkan RTP Mahjong, Inilah Hasil Data Analsisis Tim Suhubet Dapat Membuat Pola RTP Terbaru Bos Angkot Membaca Pola RTP Suhubet Dan Pahami Mendalam Fusion Wild Dan Scatter Sukses Mendapatkan Motor Nmax Mengambil Kerjaan Sampingan Sebagai Analsis Data, Felix Membocorkan Data Pola Mahjong Pada Suhubet Dengan Kememangan 120.000.000 Pola Pikir Strategis Dengan Metode Perputaran 30-10-25 Pada Mahjong, Suhubet Membagikan Data Hasil Analsisis RTP Kekinian Kerja Keras Akhirnya Terbayarkan, Data Riset Mahjong Selama 5Bulan Mendatangkan Pola Terbaru Yang Belum Di Ketahui Banyak Orang Perkembangan AI Telah Menghadirkan Pola RTP SUHUBET Hasil Riset Menggunakan Bantuan AI di Masa Digital Ini Pedagang Pecel Disaat Tidak Ada Pelanggan Mencoba Keberentungan Di Mahjong Dengan Pola Putaran 15-45-20 Dari RTP SUHUBET Terbongkar Cara Terbaru Membaca Pola RTP Mahjong Dengan Bantuan di Jaman Era Digital Menggunakan AI di SUHUBET Bos Barang Bekas Menemukan Hp Yang Sedang Menjalankan Perputaran Auto Pada Mahjong Yang Mendapati Pecahan Maxwin Bukan Hanya Cerdas Tetapi Sangat Irit, Taktik Perputaran Mahjong Dengan Modal Kecil Tanpa Rugi Taktik 10-20-30 Yang Di Gunakan Home Untuk Melawan Away, Simak Selengkapnya Yang Digunakan Mahjong Digital Ungkapan Jupanji Mengenai Taktik Terlarang Yang Ia Pakai Karena Ampuh Memenangkan Mahjong Ways 3 Bermain Secara Kepala Dingin Dan Tidak Terbawa Emosi, Salah Satu Trick Mahjong Yang Selalu di Pakai Orang Dalam Jutawan Terkenal Melakukan Live Streaming Dengan Taktik Perputaran Yang Ia Gunakan Pada Mahjong Ways 2 Penelitian Data Perputaran Energi Mahjong Dengan Membawakan Pola 20-80-50 Berhasil Mencatat Sejarah Terbaru Metode Dewa Naga Hitam: Strategi Mudah dan Pola Mahjong dalam Mencapai Keseimbangan Perputaran Receh Dari Kreativitas Berujung Cuan, Pola Kreatif Dari RTP SUHUBET Membawa Kedamaian Perputaran Dengan Tenang Taktik Jitu dan Sangat Mudah Dipahami pada Mahjong, Cek Sekarang Jangan Sampai Ketinggalan RTP SUHUBET 99% Pengetahuan Ilmu Analisis Mahjong, Sekolah Tinggi Mahjong Ways Kolaborasi Dengan SUHUBET Menciptakan Kurikulum Baru Pahami Momen Terbaik dari RTP SUHUBET: Analisis Waktu Stabil Pola Mahjong Digital 2025 RTP SUHUBET 2025: Pola Waktu Adaptif yang Mengubah Cara Pengamat Membaca Ritme Mahjong Digital Taktik Ampuh Dari SUHUBET, Menghadirkan Kolaborasi Terbaru Bersama Duta Mahjong 2 Dengan Pola 10-70-20 Desainer SUHUBET Hadirkan Visual Mahjong yang Lebih Kece, Pembaharuan Terbaru dan Pola Mantap Sudah di Publish Dengan Bantuan AI di BUJANGJP, Memprediksi Dan Menghitung Angka Togel Sangat di Mudahkan Dan Meningkatkan Peluang Terbang Tinggi Tanpa Jatuh, Ini Lah Jam Paling Diminati SPACEMAN Dengan Memberikan X500 Berturut-turut Tanpa Henti Strategi Taktis Dan Reaksi Psikologi Pada Permainan Baccarat Yang Banyak Salah Sangka Dan Membuat Habis Modal Jangan Sampai Telat, Saksikan Pertandingan Panas Liverpool Vs Real Madrid Dan Cek Pasarannya Pada BUJANGJP Teknik Menghitung Jumlah Pecahan, Strategi Dari BUJANGJP Pada Mahjong Memberikan Dampak Positif Turunya Scatter Artikel Terbaru Membawakan Pola Mahjong, Hasil Dari Analisis Data Terbaru Dari SUHUBET Pada Event HUT Putaran Roulette Dengan Taktik Safety Yang di Bagikan Streamer Online, Menyebutkan Bahwa Sedikit-Sedikit Lama Lama Jadi Bukit Taktik Menghitung Angka Keluaran Dari Basis Data 1 Bulan, Inilah Cara Tim Analsis Suhubet Dalam Mebagikan Bocoran Angka Togel Jangan Ketinggalan Match Besar Liverpool Vs Real Madrid, Cek Sekarang Odds Besar di Suhubet Dan Prediksi Skor Dari Data Analisis Tim Fitur Tambahan Pada RTP Suhubet Dengan Menggunakan AI Untuk Menciptakan Pola Perputaran Sesuai Dengan User Id Yang Dimiliki Cerita Menginspirasi Yamal Dengan Perjuangan Tanpa Lelah di Mahjong Dengan Menghasilkan Rp850.000.000 Setelah Kemenangannya Berawal Dari Meja Mahjong Menjadi Toko Bangunan, Kisah Inspirasi Samson Mencari Modal Bisnis Ritme Perputaran dan Pola Paling Sering Digunakan Pemain Mahjong Ceria Seru dan Tetap Aman Hasil Data Analisis dari Observasi Perputaran Mahjong dengan Peluang Turun Wild Tinggi Menghebohkan Terinspirasi dari Sniper: Abdul Menikmati Mahjong dengan Taktik Diam dan Tenang Eksperimen Membaca RTP Mahjong Ways 2 dan Penggunaan Putaran Auto Pengali 1000 di SUHUBET Tidak Sengaja Menekan Tombol Maksimal di Mahjong Ways 2 Berubah Menjadi Hasil Memukau Rp 460.000.000 Data Analisis Terbesar Bocor, Panduan Pola Mahjong Ways 3 Mendapatkan Rp225.000.000 Tukang Pengantar Makanan Mendapatkan Berkat Dari Mahjong Sebesar Rp110.000.000 Pada Saat Istirahat Cuan Dengan Modal Kecil, Pengaduk Semen Mendapatkan Rp35.000.000 Saat Istirahat Cara Cepat Dan Mudah Untuk Pahami Pola Rtp Terbaru Dan Bocoran Dari Orang Dalam Takti Tanpa Bermain Panas Dan Ego, Tips Memahami Pola Permainan Yang Stabil Dari Admin SUHUBET Perkembangan AI Dalam Membantu Analisis RTP Mahjong Mencapai 99% Di Suhubet Strategy Mahjong Ways 3 Dalam Pergerakan Ekonomi Maju Sangat Menguntungkan Banyak UMKM Tips Dan Trick Jitu Paling Sering Digunakan Oleh Pemain Mahjong Berpadu Dengan Pola Wild Anti Boncos Rahasia Pengolahan Tektik Safety Spin pada Permainan Mahjong di Claim Selalu Take Profit Pendekatan Mengamati Pola Seperti Mahjong Ways Disebut Efektif Bantu Pelaku UMKM Mengatur Fokus dan Produktivitas Resmi Membeli Mobil Honda, Juna Hanya Bermodalkan Mahjong Berhasil Membeli Mobil Honda Brio Jangan Sampai Terlambat, Kuasai Pola Dan Taktik Simpel Dan Cuan Ala Husmita di Mahjong Ways Akhirnya Bocor, Data Yang Terlarang di Simpan Oleh Majong Statistika Perputaran Yang Sesuai Dengan Algoritma Terbaru Angin Sepoy Sepoy di Teras Rumah, Warga Mulai Paham Ritme Tenang Ala Mahjong Ways Tips Pemain Baru Baccarat Kenali Pola dan Waktu Terbaik untuk Bertaruh Analisis Strategi Dua Langkah Baccarat Saat Harus Bertahan dan Saat Harus Berhenti Pola RTP Gate of Olympus Cenderung Naik di Malam Hari Sudah di Buktikan Langsung Cara Mengenali Pola Scatter Princess Starlight Tanpa Mengandalkan Keberuntungan Strategi Mahjong Ways 2 yang Fokus pada Ritme dan Transisi Pola Scatter Kenali 3 Pola Baccarat yang Sering Dianggap Mitos Padahal Terbukti Efektif Tips Mengatur Modal Baccarat Agar Tidak Habis Sebelum Pola Terbentuk Mahjong Ways 2: Cara Memanfaatkan Momentum Setelah Pola Gagal Berturut-turut Baccarat dan Pola Sirkulasi Waktu: Saat Keberuntungan Ternyata Bisa Dihitung Princess Starlight Rahasia di Balik Pola Cahaya yang Bikin Scatter Muncul Strategi Pemain Harian Untuk Cegah Penurunan RTP Saat Pola Spin Bergeser Strategi Jitu Pemain Baccarat Dalam Menjaga Irama Pola Spin Berlanjut Kombinasi Gate of Olympus dan Baccarat Jadi Tren Baru Para Pemain Analitik Analisis Komunitas Pola Lama Mulai Muncul Lagi Setelah Pembaruan RTP Global Irama Spin Mahjong Wins 3 Tampilkan Pola Naik Turun Unik di Fase Scatter Awal Cara Baru Mahjong Wins 3 Tunjukkan Pola Baru Dengan Kombinasi Naik-Turun RTP Unik Strategi Gabungan Baccarat dan Gate of Olympus Jadi Tren Baru Pemain Profesional Analisis Pola Baccarat Modern Antara Logika dan Intuisi Dalam Membaca Meja Strategi Pemain Harian Untuk Cegah Penurunan RTP Saat Pola Spin Bergeser Analisis Baru Ungkap Pola Kemenangan Baccarat Terbentuk Dari Lima Putaran Awal Kombinasi Gate of Olympus dan Baccarat Jadi Eksperimen Baru Dunia Digital Permainan Pola Baccarat Modern Disebut Mirip Siklus Nafas, Begini Penjelasan Ahli Statistik Kombinasi Baccarat dan Mahjong Kembali Ramai Setelah Tren Pola Seirama Pola Naik-Turun Baccarat Dianggap Mewakili Irama Psikologis Pemain Aktif Kombinasi Bonanza dan Baccarat Dipuji Sebagai Pola Sinkron Paling Stabil Analisis Terbaru Pola Kartu Baccarat Bisa Mengikuti Siklus Harian Seperti RTP Strategi Langkah Tenang Kembali Diterapkan Pemain Saat RTP Mahjong Bergejolak Strategi Dua Dunia Saat Logika dan Intuisi Berjalan Bersama Dalam Pola Baccarat Kombinasi Baccarat dan Starlight Princess Diuji Sebagai Simulasi Pola Waktu Analisis Data Pola Baccarat Bergerak Lebih Stabil Setelah Empat Putaran Kosong Dunia Digital Bahas Kesamaan Pola Baccarat dan Pergerakan Data Meteorologi Baccarat Jadi Studi Unik Dalam Dunia Digital Karena Ritme-nya Meniru Pola Alam Kombinasi Baccarat dan Mahjong Ways 2 Uji Pola Sinkronisasi Melalui Irama Detik Analisis Baccarat dan Pola Data Starlight Princess Ditemukan Seirama di Simulasi Dunia Digital Bahas Bagaimana Baccarat Bisa Meniru Pola RTP Alamiah Gelombang Laut Dunia Digital Bahas Fenomena Pemain Baccarat yang Terapkan Pola Meditatif Anomali Jam Bermain Baccarat Jadi Bahan Riset Tentang Fokus Pemain Profesional Kombinasi Bonanza dan Baccarat Disebut Sebagai Pola Irama Paling Natural Pemain Mahjong Wins 3 Menguji Strategi "Satu Detik Diam" Dalam Bacaan Pola Baccarat Analisis RTP Gate of Olympus Beri Dampak Tak Terduga Pada Pola Stabil Baccarat repository.tdjpublisher.com