Python trừ ngày từ chuỗi ngày

Nếu bạn thường xuyên làm việc với dữ liệu chuỗi thời gian, một điều thông thường bạn cần làm là cộng và trừ ngày từ một ngày. Nếu bạn đã thử làm điều này bằng tay, bạn sẽ nhận ra rằng nó thực sự khá phức tạp, bởi vì bạn phải cho phép các độ dài tháng, năm nhuận và cuối năm khác nhau

Python bao gồm một số tính năng tuyệt vời để định dạng lại ngày tháng, do đó, thực sự khá dễ dàng để cộng và trừ ngày tháng, nhờ hàm timedelta[] và nó hoạt động trơn tru trong Pandas. Đây là cách thực hiện

Tải các gói

Trước tiên, hãy mở sổ ghi chép Jupyter và nhập Pandas và mô-đun timedelta từ gói datetime tích hợp sẵn của Python. Hàm timedelta cho phép bạn thực hiện các phép tính cộng và trừ ngày có thể cộng hoặc trừ các số ngày đã chỉ định từ một ngày và trả về một ngày mới trước hoặc sau ngày ban đầu

import pandas as pd
from datetime import timedelta

Vì đây là loại chức năng bạn có thể sử dụng nhiều lần trong các dự án của mình, tôi khuyên bạn nên tạo một vài chức năng trợ giúp để sử dụng trong các gói hoặc mã nội bộ của mình. Đầu tiên, chúng tôi sẽ tạo một để trừ ngày từ một ngày

Hàm

def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
1 sẽ nhận hai đối số, chuỗi ngày của chúng ta và số ngày cần trừ. Khi hàm nhận được chuỗi ngày, trước tiên, hàm này sẽ sử dụng hàm Pandas
def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
0 để chuyển đổi nó thành Python datetime và sau đó, hàm sẽ sử dụng hàm timedelta[] để trừ số ngày được xác định trong biến
def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
3. Cuối cùng, nó sẽ sử dụng
def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
4 để chuyển đổi ngày giờ sang định dạng YYYY-MM-DD mà tôi yêu cầu. Bạn có thể chuyển các đối số khác cho
def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
4 nếu bạn muốn trả về một định dạng ngày khác

def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date

Để chạy hàm

def subtract_days_from_date[date, days]:
    """Subtract days from a date and return the date.
    
    Args: 
        date [string]: Date string in YYYY-MM-DD format. 
        days [int]: Number of days to subtract from date
    
    Returns: 
        date [date]: Date in YYYY-MM-DD with X days subtracted. 
    """
    
    subtracted_date = pd.to_datetime[date] - timedelta[days=days]
    subtracted_date = subtracted_date.strftime["%Y-%m-%d"]

    return subtracted_date
1, bạn chỉ cần nhập chuỗi ngày của mình, tôi. e. 2021-02-01, và số ngày, tôi. e. 13 và nó sẽ trả về ngày 13 ngày trước, vì vậy bạn có thể sử dụng nó ở nơi khác trong mã của mình

date_subtraction_example = subtract_days_from_date['2021-02-01', 13]
date_subtraction_example

Quá trình thêm ngày vào một ngày trong Pandas khá giống nhau. Bạn có thể xử lý điều này trong một hàm duy nhất nếu muốn, nhưng tên hàm rõ ràng hơn của phiên bản này sẽ cải thiện khả năng đọc mã, tôi nghĩ vậy. Quá trình này hoàn toàn giống nhau, nhưng thay vì trừ đi timedelta[], chúng tôi cộng nó lại

Chủ Đề