Làm cách nào để bạn chia dữ liệu thành một nhóm trong python?

Trong bài đăng này, bạn sẽ tìm hiểu cách phân chia khung dữ liệu Pandas theo nhiều cách khác nhau. Bạn sẽ tìm hiểu cách chia khung dữ liệu Pandas theo giá trị cột, cách chia khung dữ liệu Pandas theo vị trí và cách chia khung dữ liệu Pandas theo giá trị ngẫu nhiên

Biết cách phân chia khung dữ liệu Pandas là một kỹ năng hữu ích trong nhiều ứng dụng. học máy để chọn các giá trị ngẫu nhiên, chia dữ liệu thành các bản ghi cụ thể để tự động hóa báo cáo, v.v.

Mục lục

  • Đang tải một khung dữ liệu mẫu
  • Tách khung dữ liệu Pandas theo giá trị cột
  • Tách một khung dữ liệu Pandas theo vị trí
  • Tách một khung dữ liệu Pandas thành các giá trị ngẫu nhiên
  • Phần kết luận

Đang tải một khung dữ liệu mẫu

Nếu bạn muốn làm theo hướng dẫn, vui lòng tải khung dữ liệu Pandas mẫu được cung cấp bên dưới. Nếu bạn có dữ liệu của riêng mình, vui lòng sử dụng dữ liệu đó, mặc dù một số ví dụ cụ thể có thể cần điều chỉnh bổ sung cho ngữ cảnh của bạn

Hãy bắt đầu và tải một số dữ liệu

import pandas as pd
df = pd.DataFrame.from_dict[
    {
        'Name': ['Jenny', 'Matt', 'Kristen', 'Jenny', 'Matt', 'Kristen', 'Jenny', 'Matt', 'Kristen', 'Jenny', 'Matt', 'Kristen'],
        'Year': [2020, 2021, 2022, 2020, 2021, 2022, 2020, 2021, 2022, 2020, 2021, 2022],
        'Income': [10000, 11000, 9000, 12000, 13000, 11000, 14000, 15000, 13000, 12000, 14000, 13000],
        'Gender': ['F', 'M', 'F', 'F', 'M', 'F', 'F', 'M', 'F', 'F', 'M', 'F']
    }
]
print[df]

In ra khung dữ liệu trả về như sau

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M

Chúng ta có thể thấy rằng chúng ta có bốn cột. Tên, Năm, Thu nhập và Giới tính. Chúng tôi có thu nhập của ba người trong ba năm và giới tính của họ. Hãy xem cách chúng ta có thể chia khung dữ liệu này

Tách khung dữ liệu Pandas theo giá trị cột

Tách khung dữ liệu theo giá trị cột là một kỹ năng rất hữu ích cần biết. Nó có thể giúp tự động hóa báo cáo hoặc có thể phân tích các giá trị khác nhau của khung dữ liệu

Cách mà bạn sẽ học cách phân chia một khung dữ liệu theo các giá trị cột của nó là sử dụng phương pháp

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
8. Tôi đã đề cập đến phương pháp này khá nhiều trong video hướng dẫn này

Hãy xem cách chúng ta có thể chia khung dữ liệu theo cột Tên

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]

Những gì chúng tôi đã làm ở đây là

  1. Đã tạo một đối tượng
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    0 có tên là
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    1, tách khung dữ liệu theo cột Tên,
  2. Đã sử dụng phương pháp
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    2 để lấy các hàng của khung dữ liệu có chứa 'Jenny'

Nhận tất cả các nhóm của khung dữ liệu theo giá trị

Phương pháp bạn đã học ở trên rất hữu ích để lấy dữ liệu nếu bạn biết nhóm bạn muốn lấy

Bây giờ bạn sẽ học cách chia khung dữ liệu thành tất cả các nhóm có thể có của nó

Chúng tôi sẽ bắt đầu bằng cách lấy tất cả các giá trị khác nhau trong một cột. Chúng tôi sẽ làm điều này bằng cách sử dụng phương pháp Pandas

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
3, bạn có thể tìm hiểu chi tiết về phương pháp này trong bài đăng của tôi tại đây. Nếu bạn muốn tìm hiểu về nó ở dạng video, hãy xem video của tôi bên dưới

Trong ví dụ bên dưới, chúng tôi lặp qua khung dữ liệu và lưu các bản ghi duy nhất vào một tệp Excel mới

grouped = df.groupby[df['Name']]

path_to_directory = '/Users/datagy/'
for name in df['Name'].unique[]:
    temporary_df = grouped.get_group[name]
    temporary_df.to_excel[f'{path_to_directory}name.xlsx']

Những gì chúng tôi đã làm ở đây được lặp qua các giá trị duy nhất của khung dữ liệu trong cột Tên, nhận nhóm của từng tên và lưu nó vào tệp Excel

Tách một khung dữ liệu Pandas theo vị trí

Trong phần này, bạn sẽ tìm hiểu cách chia khung dữ liệu Pandas theo một vị trí trong khung dữ liệu. Ví dụ: cách chia một khung dữ liệu thành một nửa hoặc thành ba phần

Chúng ta có thể thực hiện điều này rất dễ dàng bằng cách sử dụng bộ truy cập pandas

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
4. Công cụ mạnh mẽ này giúp truy cập dữ liệu trong Pandas rất dễ dàng. Để tìm hiểu thêm về nó, hãy xem hướng dẫn chuyên sâu của tôi tại đây

Điều quan trọng ở đây là truy cập vào các hàng bạn muốn truy cập. Chúng ta có thể thực hiện việc này bằng cách sử dụng hàm

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
5 tích hợp để xác định thời lượng của một khung dữ liệu. Bạn có thể tìm hiểu sáu phương pháp khác nhau để tìm hiểu thời gian sử dụng khung dữ liệu bằng cách sử dụng hướng dẫn của tôi tại đây

Giả sử chúng ta muốn chia đôi khung dữ liệu Pandas. Chúng tôi sẽ chia hàng khôn ngoan ở điểm giữa

Cách mà chúng ta có thể tìm thấy điểm giữa của khung dữ liệu là tìm chiều dài của khung dữ liệu và chia nó cho hai. Khi chúng tôi biết độ dài, chúng tôi có thể chia khung dữ liệu bằng cách sử dụng bộ truy cập

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
4

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
1

Chúng ta có thể thấy ở đây khung dữ liệu đã trả về nửa đầu của các giá trị

Hãy xem cách chúng ta có thể biến điều này thành một chức năng chia khung dữ liệu thành nhiều phần

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
2

Cái này trả về là phần ba thứ 2 của khung dữ liệu gốc

       Name  Year  Income Gender
0     Jenny  2020   10000      F
1      Matt  2021   11000      M
2   Kristen  2022    9000      F
3     Jenny  2020   12000      F
4      Matt  2021   13000      M
5   Kristen  2022   11000      F
6     Jenny  2020   14000      F
7      Matt  2021   15000      M
8   Kristen  2022   13000      F
9     Jenny  2020   12000      F
10     Matt  2021   14000      M
3

Hãy khám phá chức năng thực sự làm gì

  1. Chúng tôi khởi tạo một danh sách có tên là
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    7, danh sách này sẽ chứa các khung dữ liệu kết quả
  2. Chúng tôi xác định mỗi khung dữ liệu sẽ giữ bao nhiêu hàng và gán giá trị đó cho
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    8
  3. Sau đó, chúng tôi gán cho
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    9 giá trị 0 và
    grouped = df.groupby[df['Name']]
    print[grouped.get_group['Jenny']]
    0 giá trị đầu tiên từ
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    8
  4. Cuối cùng, chúng tôi lặp qua phạm vi khung dữ liệu để chia thành, chọn dữ liệu từ 0 đến chỉ mục đầu tiên đó
  5. Khung dữ liệu kết quả được thêm vào danh sách
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    7 và các giá trị của
           Name  Year  Income Gender
    0     Jenny  2020   10000      F
    1      Matt  2021   11000      M
    2   Kristen  2022    9000      F
    3     Jenny  2020   12000      F
    4      Matt  2021   13000      M
    5   Kristen  2022   11000      F
    6     Jenny  2020   14000      F
    7      Matt  2021   15000      M
    8   Kristen  2022   13000      F
    9     Jenny  2020   12000      F
    10     Matt  2021   14000      M
    9 và
    grouped = df.groupby[df['Name']]
    print[grouped.get_group['Jenny']]
    0 được tăng lên
  6. Cuối cùng, danh sách các khung dữ liệu được trả về và có thể được truy cập

Vì các danh sách được lập chỉ mục 0, nên bạn có thể truy cập khung dữ liệu đầu tiên bằng cách truy cập giá trị thứ 0 của danh sách

Như ví dụ cuối cùng của chúng tôi, hãy xem cách chúng tôi có thể chia một khung dữ liệu thành các hàng ngẫu nhiên

Tách một khung dữ liệu Pandas thành các giá trị ngẫu nhiên

Chúng tôi cũng có thể chọn một lựa chọn ngẫu nhiên các hàng từ một khung dữ liệu. Pandas đi kèm với một phương pháp

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
5 rất hữu ích cho phép bạn chọn một số bản ghi để chọn hoặc một phần hàng để chọn. Điều này có thể rất hữu ích nếu bạn không quan tâm bạn đang trả lại những hàng nào, nhưng muốn chia nhỏ khung dữ liệu

Hãy xem cách chúng ta có thể chia đôi khung dữ liệu bằng cách sử dụng Pandas

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
5

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
4

Chúng ta có thể thấy ở đây khung dữ liệu đã trả về một lựa chọn hàng ngẫu nhiên

Bây giờ, hãy xem cách chúng ta có thể trả về chỉ một số hàng bằng phương thức Pandas

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
5

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
6

Ở đây chúng tôi đã sử dụng tham số

grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
8 để xác định số lượng hàng cần trả về

Phần kết luận

Trong bài đăng này, bạn đã học cách chia khung dữ liệu Pandas. Đặc biệt, bạn đã học cách chia khung dữ liệu Pandas theo giá trị cột, theo vị trí và cả theo giá trị ngẫu nhiên

Chúng ta có thể nhóm theo 2 cột trong Python không?

Nhóm theo nhiều cột . You can do this by passing a list of column names to groupby instead of a single string value.

Phương pháp nào được sử dụng để chia dữ liệu thành các nhóm dựa trên một số tiêu chí?

Bằng “ nhóm theo ”, chúng tôi đang đề cập đến một quy trình bao gồm một hoặc nhiều bước sau. Chia dữ liệu thành các nhóm dựa trên một số tiêu chí. Áp dụng một chức năng cho từng nhóm một cách độc lập.

Chủ Đề