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àyHã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à
- Đã tạo một đối tượng
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,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
- Đã sử dụng phương pháp
2 để lấy các hàng của khung dữ liệu có chứa 'Jenny'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
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ướiTrong 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 đâyGiả 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
1Chú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
2Cá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
3Hãy khám phá chức năng thực sự làm gì
- Chúng tôi khởi tạo một danh sách có tên là
7, danh sách này sẽ chứa các khung dữ liệu kết quả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 tôi xác định mỗi khung dữ liệu sẽ giữ bao nhiêu hàng và gán giá trị đó cho
8Name 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
- Sau đó, chúng tôi gán cho
9 giá trị 0 và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 giá trị đầu tiên từgrouped = df.groupby[df['Name']] print[grouped.get_group['Jenny']]
8Name 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
- 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 đó
- Khung dữ liệu kết quả được thêm vào danh sách
7 và các giá trị củaName 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à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ăng lêngrouped = df.groupby[df['Name']] print[grouped.get_group['Jenny']]
- 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ệuHã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']]
5grouped = df.groupby[df['Name']]
print[grouped.get_group['Jenny']]
4Chú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']]
5grouped = 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