A Pandas extension to make work with Jalali Date easier.
Project description
Jalali Pandas Extentsion
A pandas extension that solves all problems of Jalai/Iraninan/Shamsi dates
Features
Series Extenstion
- Convert string to Jalali date
1388/03/25
-->jdatetime(1388,3,25,0,0)
- Convert gregorian date to Jalali date
datetime(2019,11,17,0,0)
-->jdatetime(1398,8,26,0,0)
- Convert Jalali date to gregorian date
jdatetime(1398,10,18,0,0)
-->datetim(2020,1,8,6,19)
DataFrame extenstion
- Support grouping by Jalali date
- Group by year, month, days, ...
- Shortcuts for groups:
ymd
for['year','month','day']
and more - Resampling: Convenience method for frequency conversion and resampling of time series but in Jalali dateformat. (comming soon)
Installation
pip install -U jalali-pandas
Usage
Just import jalali-pandas and use pandas just use .jalali
as a method for series and dataframes. Nothin outside pandas.
jalali-pandas
is an extentsion for pandas, that add a mehtod for series/columns and dataframes.
Series
import pandas as pd
import jalali_pandas
# create dataframe
df = pd.DataFrame({"date": pd.date_range("2019-01-01", periods=10, freq="D")})
# convert to jalali
df["jdate"] = df["date"].jalali.to_jalali()
# convert to gregorian
df["gdate"] = df["jdate"].jalali.to_gregorian()
# parse string to jalali
df1 = pd.DataFrame({"date": ["1399/08/02", "1399/08/03", "1399/08/04"]})
df1["jdate"] = df1["date"].jalali.parse_jalali("%Y/%m/%d")
# get access to jalali year,quarter ,month, day and weekday
df['year'] = df["jdate"].jalali.year
df['month'] = df["jdate"].jalali.month
df['quarter'] = df["jdate"].jalali.quarter
df['day'] = df["jdate"].jalali.day
df['weekday'] = df["jdate"].jalali.weekday
DataFrame
import pandas as pd
import jalali_pandas
df = pd.DataFrame(
{
"date": pd.date_range("2019-01-01", periods=10, freq="M"),
"value": range(10),
}
)
# make sure to create a column with jalali datetime format. (you can use any name)
df["jdate"] = df["date"].jalali.to_jalali()
# group by jalali year
gp = df.jalali.groupby("year")
gp.sum()
#group by month
mean = df.jalali.groupby('mean')
#groupby year and month and day
mean = df.jalali.groupby('ymd')
# or
mean = df.jalali.groupby(['year','month','day'])
#groupby year and quarter
mean = df.jalali.groupby('yq')
# or
mean = df.jalali.groupby(['year','quarter'])
راهنمای فارسی
برای مطالعه راهنمای فارسی استفاده از کتابخانه به این آدرس مراجعه کنید.
معرفی بسته pandas-jalali | آموزش کار با تاریخ شمسی در pandas معرفی بسته pandas-jalali | آموزش کار با تاریخ شمسی در pandas
راهنمای ویدیویی
ToDos:
- add gregorian to Jalali Conversion
- add Jalali to gregorian Conversion
- add support for sampling
- add date parser from other columns
- add date parser from string
Project details
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 jalali_pandas-0.2.2.tar.gz
.
File metadata
- Download URL: jalali_pandas-0.2.2.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a6e3ab9cc8fada4dc5fdc4f57f885f8788c7abe5ab4004e8f9f2e14adb4ff87 |
|
MD5 | 90183504393a434f6d516e84de842da8 |
|
BLAKE2b-256 | 8d07cf963042370d4eec886ed8b990b45c7a625b4930729db2d73de75ccf45b6 |
File details
Details for the file jalali_pandas-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: jalali_pandas-0.2.2-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0151bf1bd67855c753788b536798b965f053f7680be906edf763edef062efff4 |
|
MD5 | 1da0de136fd1d3f4d0a6240d2ffc1983 |
|
BLAKE2b-256 | 05f20b29535cc29e4dd964f62b0b6382d52cfb9dbcd32d9f466b66823530e320 |