Cách chia ngày trong Python

Trong bài viết này, bạn sẽ tìm thấy 3 ví dụ khác nhau về cách chia khung dữ liệu thành các khung dữ liệu mới dựa trên một cột. Các ví dụ là

Video hướng dẫn

gấu trúc. Cách chia khung dữ liệu trên cơ sở hàng tháng

Bạn có thể xem khung dữ liệu trên hình bên dưới. Ban đầu các cột. "ngày", "mm", "năm" không tồn tại. Chúng tôi sẽ chia khung dữ liệu thành nhiều nhóm tùy thuộc vào tháng. Với mục đích đó, chúng tôi đang chia cột ngày thành ngày, tháng và năm. Sau đó ta sẽ nhóm vào cột tháng. Cuối cùng, chúng tôi đang in các khung dữ liệu đầu ra

import pandas as pd

df = pd.DataFrame[
    {
        "Company": [
            "Samsung", "Samsung", "Samsung", "Samsung", "Samsung", "LG", "LG", "LG", "LG", "LG", "Sony", "Sony", "Sony",
            "Sony", "Sony",
        ],
        "Date": [
            "10/9/2015", "10/9/2015", "10/9/2017", "10/10/2017", "10/10/2017", "10/10/2018", "10/9/2018", "10/9/2018",
            "10/9/2018", "10/10/2016", "10/10/2016", "10/10/2016", "10/10/2019", "10/10/2019", "10/10/2019",
        ],
        "Country": [
            "India", "India", "USA", "France", "India", "India", "Germany", "USA", "Brazil", "Brazil", "India",
            "Germany", "India", "India", "Brazil",
        ],
        "Sells": [15, 81, 29, 33, 21, 42, 67, 35, 2, 34, 21, 50, 10, 26, 53],
    }
]

df[["day", "mm", "year"]] = df["Date"].str.split["/", expand=True]
agg = df.groupby[['mm']]
for group in agg:
    print[group]

kết quả

CompanyDateCountrySells daymmyear3Samsung10/10/2017France33101020174Samsung10/10/2017India21101020175LG10/10/2018India42101020189LG10/10/2016Brazil341010201610Sony10/10/2016India211010201611Sony10/10/2016Germany501010201612Sony10/10/2019India101010201913Sony10/10/2019India261010201914Sony10/10/2019Brazil5310102019CompanyDateCountrySells day mmyear0Samsung10/9/2015India1510920151Samsung10/9/2015India8110920152Samsung10/9

gấu trúc. Cách chia khung dữ liệu mỗi năm

Lần này chúng tôi sẽ sử dụng cách tiếp cận khác để đạt được hành vi tương tự. Đầu tiên chúng ta sẽ sử dụng lambda để chuyển đổi chuỗi thành ngày tháng. Sau đó, chúng tôi đang trích xuất các khoảng thời gian. Phần cuối cùng là nhóm theo năm trích xuất

import dateutil
import pandas as pd

df = pd.DataFrame[
    {
        "Company": [
            "Samsung", "Samsung", "Samsung", "Samsung", "Samsung", "LG", "LG", "LG", "LG", "LG", "Sony", "Sony", "Sony",
            "Sony", "Sony",
        ],
        "Date": [
            "10/9/2015", "10/9/2015", "10/9/2017", "10/10/2017", "10/10/2017", "10/10/2018", "10/9/2018", "10/9/2018",
            "10/9/2018", "10/10/2016", "10/10/2016", "10/10/2016", "10/10/2019", "10/10/2019", "10/10/2019",
        ],
        "Country": [
            "India", "India", "USA", "France", "India", "India", "Germany", "USA", "Brazil", "Brazil", "India",
            "Germany", "India", "India", "Brazil",
        ],
        "Sells": [15, 81, 29, 33, 21, 42, 67, 35, 2, 34, 21, 50, 10, 26, 53],
    }
]

df["Date"] = df["Date"].apply[lambda x: dateutil.parser.parse[x]]
year = df["Date"].dt.to_period["Y"]
agg = df.groupby[[year]]
for group in agg:
    print[group]

kết quả

CompanyDate CountrySellsdaymmyear0Samsung 2015-10-09India1510920151Samsung 2015-10-09India811092015CompanyDateCountrySells daymmyear9LG 2016-10-10Brazil341010201610Sony 2016-10-10India211010201611Sony 2016-10-10Germany5010102016CompanyDate CountrySells daymmyear2Samsung 2017-10-09USA2910920173Samsung 2017-10-10France33101020174Samsung 2017-10-10India2110102017CompanyDateCountrySells daymmyear5LG 2018-10-

gấu trúc. Tách khung dữ liệu trên một cột chuỗi

Lần này khung dữ liệu là một khung dữ liệu khác. Và chúng tôi có hồ sơ cho hai công ty bên trong. Nếu mục tiêu của chúng tôi là chia khung dữ liệu này thành các khung dữ liệu mới dựa trên các công ty thì chúng tôi có thể thực hiện

Tham số n có thể được sử dụng để giới hạn số lần phân tách trên dấu phân cách. Đầu ra của split và rsplit là khác nhau

>>> s.str.split[n=2]
0                     [this, is, a regular sentence]
1    [//docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object

>>> s.str.rsplit[n=2]
0                     [this is a, regular, sentence]
1    [//docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object

Tham số pat có thể được sử dụng để phân chia theo các ký tự khác

>>> s.str.split[pat="/"]
0                         [this is a regular sentence]
1    [, , docs.python.org, 3, tutorial, index...
2                                                  NaN
dtype: object

Khi sử dụng

>>> s.str.rsplit[]
0                   [this, is, a, regular, sentence]
1    [//docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object
1, các phần tử phân chia sẽ mở rộng thành các cột riêng biệt. Nếu có NaN, nó sẽ được lan truyền khắp các cột trong quá trình phân tách

>>> s.str.split[expand=True]
                                               0     1     2        3         4
0                                           this    is     a  regular  sentence
1  //docs.python.org/3/tutorial/index.html  None  None     None      None
2                                            NaN   NaN   NaN      NaN       NaN

Đối với các trường hợp sử dụng phức tạp hơn một chút như tách tên tài liệu html khỏi url, có thể sử dụng kết hợp các cài đặt tham số

>>> s.str.rsplit["/", n=1, expand=True]
                                    0           1
0          this is a regular sentence        None
1  //docs.python.org/3/tutorial  index.html
2                                 NaN         NaN

Nhớ thoát các ký tự đặc biệt khi sử dụng biểu thức chính quy một cách rõ ràng

________số 8_______

Biểu thức chính quy có thể được sử dụng để xử lý các url hoặc tên tệp. Khi pat là một chuỗi và

>>> s.str.split[n=2]
0                     [this, is, a regular sentence]
1    [//docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object
0 [mặc định], pat đã cho chỉ được biên dịch dưới dạng biểu thức chính quy nếu
>>> s.str.split[n=2]
0                     [this, is, a regular sentence]
1    [//docs.python.org/3/tutorial/index.html]
2                                                NaN
dtype: object
1

Làm thế nào để phân chia ngày tháng và năm trong gấu trúc?

Giả sử chúng tôi chỉ muốn truy cập tháng, ngày hoặc năm kể từ ngày, chúng tôi thường sử dụng pandas. Phương pháp 1. Sử dụng Datetime Index. thuộc tính month để tìm tháng và sử dụng Datetime Index. thuộc tính năm để tìm năm hiện tại trong Ngày .

Làm cách nào để trích xuất ngày từ dấu thời gian trong Python?

Hàm fromtimestamp[] được sử dụng để trả về ngày được liên kết với một dấu thời gian đã cho. Hàm fromtimestamp[] của lớp ngày tính toán và trả về ngày và giờ tương ứng với dấu thời gian đã chỉ định.

Chủ Đề