Effortless date span parsing and management.
Project description
datespan
A Python package for effortless date span parsing and management. Aimed for data analysis and processing, useful in any context requiring date & time spans.
pip install datespan
import pandas as pd
from datespan import parse, DateSpan
df = pd.DataFrame({"date": pd.date_range("2024-01-01", "2024-12-31")})
dss = parse("April 2024 ytd") # Create a DateSpanSet object
dss.add("May") # Add a full month of the current year (e.g. 2024 in 2024)
dss.add("today") # Add the current day from 00:00:00 to 23:59:59
dss += "previous week" # Add a full week from Monday 00:00:00 to Sunday 23:59
dss -= "January" # Remove the full month of January 2024
print(len(dss)) # returns the number of nonconsecutive DateSpans
print(dss.to_sql("date")) # returns an SQL WHERE clause fragment
print(dss.filter(df, "date")) # returns the DataFrame filtered by column 'date'
Classes
DateSpan
represents a single date or time span, defined by a start and an end datetime.
Provides methods to create, compare, merge, parse, split, shift, expand & intersect
DateSpan
objects and /or datetime
, date
or time
objects.
DateSpanSet
represents an ordered and redundancy free collection of DateSpan
objects,
where consecutive or overlapping DateSpan
objects get automatically merged into a single DateSpan
object. Required for fragmented date span expressions like every 2nd Friday of next month
.
DateSpanParser
provides parsing for arbitrary date, time and date span strings in english language,
ranging from simple dates like '2021-01-01' up to complex date span expressions like
'Mondays to Wednesday last month'. For internal DateTime parsing and manipulation, the
DateUtil library is used.
Part of the CubedPandas Project
The 'dataspan' package has been carved out from the CubedPandas project, a library for easy, fast & fun data analysis with Pandas dataframes, as DataSpan serves a broader scope and purpose and can be used independently of CubedPandas.
Bugs, Issues, Feature Requests
Please report any bugs, issues, feature requests, questions or feedback on the GitHub Issues page. It will be highly appreciated and will help to improve the package.
Documentation
Documentation will be available from 0.3.0 release on.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file datespan-0.2.8.tar.gz
.
File metadata
- Download URL: datespan-0.2.8.tar.gz
- Upload date:
- Size: 42.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5bcfda73f9f1a5407572c6672a3e430c17ae3142793c9157930f6031c014dcc |
|
MD5 | 1db1bd39c3828353910c4b3efd40b949 |
|
BLAKE2b-256 | 285b96f6a98de6323c1d4676779e82e9f27600db01d244dda5a58c5de97c11b1 |
File details
Details for the file datespan-0.2.8-py3-none-any.whl
.
File metadata
- Download URL: datespan-0.2.8-py3-none-any.whl
- Upload date:
- Size: 45.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89a0359aba0893eb62f87541228f5ebe15823112c8d66a1291a4918d4101af8c |
|
MD5 | aa7319dcdedff5b472614f84ba9c0427 |
|
BLAKE2b-256 | 4b82becc6e8cf7db74b1bb664bd978a2a5bf309090fe3ed21d5d10566626cd9e |