<h1 align="center">
DataHowdah â¨đđĸâ¨
</h1>
<p align="center">
<em>DataHowdah: Effortlessly mask and đ encrypt your data frames, ensuring their safety like a camel's secure howdah đĒ</em>
</p>
<p align="center">
<img alt="" style="border-radius: 8px" src="https://badge.fury.io/py/data-howdah.svg"/>
</p>
![1704128527248](https://github.com/mustafah/data-howdah/raw/main/images/README/caravan2.jpeg)
# DataHowdah â¨đđĸâ¨
DataHowdah is a utility python class designed to mask or encrypt pandas data frames while sharing them on different machines. It extends the functionality of pandas DataFrames, offering encryption and noise addition features for sensitive data columns. By using plain simple passwords or integrating with Microsoft Azure Key Vault (and AWS KMS), DataHowdah ensures that encryption keys are managed securely and efficiently. Its intuitive interface allows for seamless encryption and decryption of DataFrame columns, safeguarding data as it travels between systems.
```python
from data_howdah import DataHowdah
df = DataHowdah('sample.csv')
df.encrypt(['secret_column_1', 'secret_column_2'])
df.to_csv('encrypted_data.csv', index=False)
```
## **đą How to Begin**
* đģ Install :
```bash
pip install data-howdah
```
* đ Environment variables may contain your either your simple Encryption Key :
```bash
DATA_HOWDAH_ENCRYPTION_KEY=
```
or your AZURE KEY VAULT secret url:
```bash
DATA_HOWDAH_AZURE_KEY_VAULT_SECRET_URL=https://{key-vault-name}.vault.azure.net/{secret_name}
```
Don't forget to install Azure CLI and login successfully
```bash
az login
```
AWS KMS (coming soon!)
* đ Create or load your dataframe and pass it to DataHowdah:
```python
import pandas as pd
import numpy as np
# load directly from file, supports popular file paths
df = DataHowdah('sample.csv')
# or pass to it a dataframe object
df = DataHowdah(pd.DataFrame(np.random.rand(100, 3), columns=['A', 'B', 'C']))
```
âšī¸ DataHowdah is derived class from pd.DataFrame, so you can deal with as a regular dataframe
* đ Mask :
The mask method adds statistical noise to numeric columns in a DataFrame, effectively disguising the original data while preserving its overall structure and distribution.
```python
from data_howdah import DataHowdah
df = DataHowdah('sample.csv')
df.mask([0], scale = 0.5, plot = True)
# Params :
# scale: Adjusts the intensity of noise added to numeric data, with higher values increasing data obfuscation.
# plots: When set to True, generates comparative visualizations of original and masked data distributions.
df.to_csv('masked_data.csv', index=False) # Save it in the format you like !
```
* đ Encrypt :
The encrypt method in DataHowdah securely transforms specified columns in a DataFrame into unreadable formats, safeguarding sensitive information.
```python
from data_howdah import DataHowdah
df = DataHowdah('sample.csv')
df.encrypt(['secret_column', 1, slice(5, 8)])
# Params :
# 1. columns_to_encrypt: Specifies which DataFrame columns to secure, accepting column names, indices, or slices.
# 2. key: The encryption key used for data protection.
df.to_csv('encrypted_data.csv', index=False) # Save it in the format you like !
```
* đ Decrypt :
The decrypt method in DataHowdah reverses the encryption of the pre-encrypted columns, it auto detects these columns
```python
from data_howdah import DataHowdah
df = DataHowdah('encrypted_data.csv')
df.decrypt()
df.to_csv('decrypted_data.csv', index=False) # Save it in the format you like !
```
Raw data
{
"_id": null,
"home_page": "https://github.com/mustafah/data-howdah",
"name": "data-howdah",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.1",
"maintainer_email": "",
"keywords": "data-protection,data-encryption,data-security,data-privacy,data-masking,dataframe-encryption,dataframe-security,pandas-dataframe,secure-data-transfer,data-anonymization,python-security,data-encryption-tool,data-safety,data-confidentiality,dataframe-protection",
"author": "mustafah",
"author_email": "mustafah.elbanna@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f3/4f/8ee332e94d16461d75864dcaae773c153657521f0f3ef422c7cfa53f80eb/data-howdah-1.0.3.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n\tDataHowdah \u2728\ud83d\udd12\ud83d\udd22\u2728\n</h1>\n<p align=\"center\">\n <em>DataHowdah: Effortlessly mask and \ud83d\udd10 encrypt your data frames, ensuring their safety like a camel's secure howdah \ud83d\udc2a</em>\n</p>\n<p align=\"center\">\n <img alt=\"\" style=\"border-radius: 8px\" src=\"https://badge.fury.io/py/data-howdah.svg\"/>\n</p>\n\n![1704128527248](https://github.com/mustafah/data-howdah/raw/main/images/README/caravan2.jpeg)\n\n# DataHowdah \u2728\ud83d\udd12\ud83d\udd22\u2728\n\nDataHowdah is a utility python class designed to mask or encrypt pandas data frames while sharing them on different machines. It extends the functionality of pandas DataFrames, offering encryption and noise addition features for sensitive data columns. By using plain simple passwords or integrating with Microsoft Azure Key Vault (and AWS KMS), DataHowdah ensures that encryption keys are managed securely and efficiently. Its intuitive interface allows for seamless encryption and decryption of DataFrame columns, safeguarding data as it travels between systems.\n\n```python\nfrom data_howdah import DataHowdah\n\ndf = DataHowdah('sample.csv')\ndf.encrypt(['secret_column_1', 'secret_column_2'])\ndf.to_csv('encrypted_data.csv', index=False)\n```\n\n## **\ud83c\udf31 How to Begin**\n\n* \ud83d\udcbb Install :\n\n```bash\npip install data-howdah\n```\n\n* \ud83d\udd11 Environment variables may contain your either your simple Encryption Key :\n\n```bash\nDATA_HOWDAH_ENCRYPTION_KEY=\n```\n\nor your AZURE KEY VAULT secret url:\n\n```bash\nDATA_HOWDAH_AZURE_KEY_VAULT_SECRET_URL=https://{key-vault-name}.vault.azure.net/{secret_name}\n```\n\nDon't forget to install Azure CLI and login successfully\n\n```bash\naz login\n```\n\nAWS KMS (coming soon!)\n\n* \ud83d\udcc8 Create or load your dataframe and pass it to DataHowdah:\n\n```python\nimport pandas as pd\nimport numpy as np\n\n# load directly from file, supports popular file paths\ndf = DataHowdah('sample.csv')\n# or pass to it a dataframe object\ndf = DataHowdah(pd.DataFrame(np.random.rand(100, 3), columns=['A', 'B', 'C']))\n```\n\n \u2139\ufe0f DataHowdah is derived class from pd.DataFrame, so you can deal with as a regular dataframe\n\n* \ud83c\udfad Mask :\n\nThe mask method adds statistical noise to numeric columns in a DataFrame, effectively disguising the original data while preserving its overall structure and distribution.\n\n```python\nfrom data_howdah import DataHowdah\n\ndf = DataHowdah('sample.csv')\ndf.mask([0], scale = 0.5, plot = True)\n\n# Params :\n# scale: Adjusts the intensity of noise added to numeric data, with higher values increasing data obfuscation.\n# plots: When set to True, generates comparative visualizations of original and masked data distributions.\n\ndf.to_csv('masked_data.csv', index=False) # Save it in the format you like !\n```\n\n* \ud83d\udd12 Encrypt :\n\nThe encrypt method in DataHowdah securely transforms specified columns in a DataFrame into unreadable formats, safeguarding sensitive information.\n\n```python\nfrom data_howdah import DataHowdah\n\ndf = DataHowdah('sample.csv')\ndf.encrypt(['secret_column', 1, slice(5, 8)])\n\n# Params :\n# 1. columns_to_encrypt: Specifies which DataFrame columns to secure, accepting column names, indices, or slices.\n# 2. key: The encryption key used for data protection.\n\ndf.to_csv('encrypted_data.csv', index=False) # Save it in the format you like !\n```\n\n* \ud83d\udd13 Decrypt :\n\nThe decrypt method in DataHowdah reverses the encryption of the pre-encrypted columns, it auto detects these columns\n\n```python\nfrom data_howdah import DataHowdah\n\ndf = DataHowdah('encrypted_data.csv')\ndf.decrypt()\n\ndf.to_csv('decrypted_data.csv', index=False) # Save it in the format you like !\n```\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Effortlessly mask and encrypt your data frames for safe travel from computer to computer",
"version": "1.0.3",
"project_urls": {
"Homepage": "https://github.com/mustafah/data-howdah"
},
"split_keywords": [
"data-protection",
"data-encryption",
"data-security",
"data-privacy",
"data-masking",
"dataframe-encryption",
"dataframe-security",
"pandas-dataframe",
"secure-data-transfer",
"data-anonymization",
"python-security",
"data-encryption-tool",
"data-safety",
"data-confidentiality",
"dataframe-protection"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f34f8ee332e94d16461d75864dcaae773c153657521f0f3ef422c7cfa53f80eb",
"md5": "0ae652c7c7270ddf91fc8f782cb69e75",
"sha256": "79cbd16bcf013635b92ac6eec688810652930746eaf6cafde0c842c941c954e3"
},
"downloads": -1,
"filename": "data-howdah-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "0ae652c7c7270ddf91fc8f782cb69e75",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.1",
"size": 7575,
"upload_time": "2024-01-16T19:25:19",
"upload_time_iso_8601": "2024-01-16T19:25:19.264183Z",
"url": "https://files.pythonhosted.org/packages/f3/4f/8ee332e94d16461d75864dcaae773c153657521f0f3ef422c7cfa53f80eb/data-howdah-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-16 19:25:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mustafah",
"github_project": "data-howdah",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "data-howdah"
}