pandas-shredder


Namepandas-shredder JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryИзмельчитель DataFrame`ов Pandas на файлы с фиксированным количеством строк
upload_time2024-12-04 12:35:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords pandas dataframe shredder slice slicer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # data-shredder
Пакет, предоставляющий интерфейс для нарезки Pandas.DataFrame на отдельные файлы с заданным количеством строк в каждом из них.  

Предположим у вас есть файл _**big_data.csv**_ на **7 000 000** строк, расположенный в _**C:\\Documents**_.  
И у вас существует потребность сделать из него несколько файлов формата **xlsx** на **500 000** строк каждый.

_**Shredder**_ поможет Вам реализовать эту задумку в несколько строк кода.

Создадим DataFrame на основе данных из нашего файла _**C:\\Documents\\big_data.csv**_ и инициализируем Shredder

```python
import pandas as pd
from pandas_shredder import Shredder


data = pd.read_csv("C:\\Documents\\big_data.csv")

shredder = Shredder(
    directory="C:\\Documents\\result",
    extension="xlsx",
    lines_per_serving=500_000
)
```

Запустим измельчитель вызвав `run()`, передав в него набор данных и имя для выходных файлов.
```python
shredder.run(
    dataframe=df,
    file_name="small_data"
)
```
В результате выполнения кода, в каталоге _**C:\\Documents\\result**_ вас будут ожидать файлы:
- 1_small_data.xlsx
- 2_small_data.xlsx
- 3_small_data.xlsx
- ...

Для сохранения данных в файлы, используются стандартные методы **pandas**. Вы можете сконфигурировать процесс сохранения через именованные аргументы переданные в `run()` вместо `**kwargs`.  
Например:
```python
shredder.run(
    dataframe=df,
    file_name="small_data",
    index=False,
    header=False,
    sheet_name="data"
)
```
Возможные именованные аргументы зависят от выбранного в `extension` расширения. Ознакомьтесь с таблицей ниже, что бы узнать больше.

| **extension** | **pandas method**                                                                                       |
|---------------|---------------------------------------------------------------------------------------------------------|
| csv           | [to_csv()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html)     |
| xlsx          | [to_excel()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html) |
| html          | [to_html()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_html.html)   |
| json          | [to_json()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html)   |
| xml           | [to_xml()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_xml.html)                                                                                            |

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pandas-shredder",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "pandas, dataframe, shredder, slice, slicer",
    "author": null,
    "author_email": "Dmitriy Peskov <dv.peskov@yandex.ru>",
    "download_url": "https://files.pythonhosted.org/packages/ee/4b/b9793ca9f8c17b631af8bc8f7293cfc7dedcf0ce74aab12020e56856dde5/pandas_shredder-0.0.2.tar.gz",
    "platform": null,
    "description": "# data-shredder\r\n\u041f\u0430\u043a\u0435\u0442, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u043d\u0430\u0440\u0435\u0437\u043a\u0438 Pandas.DataFrame \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0442\u0440\u043e\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043d\u0438\u0445.  \r\n\r\n\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u0430\u0439\u043b _**big_data.csv**_ \u043d\u0430 **7 000 000** \u0441\u0442\u0440\u043e\u043a, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 _**C:\\\\Documents**_.  \r\n\u0418 \u0443 \u0432\u0430\u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 **xlsx** \u043d\u0430 **500 000** \u0441\u0442\u0440\u043e\u043a \u043a\u0430\u0436\u0434\u044b\u0439.\r\n\r\n_**Shredder**_ \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0412\u0430\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0437\u0430\u0434\u0443\u043c\u043a\u0443 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430.\r\n\r\n\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c DataFrame \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 _**C:\\\\Documents\\\\big_data.csv**_ \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c Shredder\r\n\r\n```python\r\nimport pandas as pd\r\nfrom pandas_shredder import Shredder\r\n\r\n\r\ndata = pd.read_csv(\"C:\\\\Documents\\\\big_data.csv\")\r\n\r\nshredder = Shredder(\r\n    directory=\"C:\\\\Documents\\\\result\",\r\n    extension=\"xlsx\",\r\n    lines_per_serving=500_000\r\n)\r\n```\r\n\r\n\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043b\u044c\u0447\u0438\u0442\u0435\u043b\u044c \u0432\u044b\u0437\u0432\u0430\u0432 `run()`, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0432 \u043d\u0435\u0433\u043e \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043c\u044f \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.\r\n```python\r\nshredder.run(\r\n    dataframe=df,\r\n    file_name=\"small_data\"\r\n)\r\n```\r\n\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430, \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 _**C:\\\\Documents\\\\result**_ \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b:\r\n- 1_small_data.xlsx\r\n- 2_small_data.xlsx\r\n- 3_small_data.xlsx\r\n- ...\r\n\r\n\u0414\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b **pandas**. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0435 \u0432 `run()` \u0432\u043c\u0435\u0441\u0442\u043e `**kwargs`.  \r\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\r\n```python\r\nshredder.run(\r\n    dataframe=df,\r\n    file_name=\"small_data\",\r\n    index=False,\r\n    header=False,\r\n    sheet_name=\"data\"\r\n)\r\n```\r\n\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0432 `extension` \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u043d\u0438\u0436\u0435, \u0447\u0442\u043e \u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435.\r\n\r\n| **extension** | **pandas method**                                                                                       |\r\n|---------------|---------------------------------------------------------------------------------------------------------|\r\n| csv           | [to_csv()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html)     |\r\n| xlsx          | [to_excel()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html) |\r\n| html          | [to_html()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_html.html)   |\r\n| json          | [to_json()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html)   |\r\n| xml           | [to_xml()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_xml.html)                                                                                            |\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u0418\u0437\u043c\u0435\u043b\u044c\u0447\u0438\u0442\u0435\u043b\u044c DataFrame`\u043e\u0432 Pandas \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0442\u0440\u043e\u043a",
    "version": "0.0.2",
    "project_urls": {
        "Homepage": "https://github.com/Dmitry-Peskov/pandas-shredder",
        "Issues": "https://github.com/Dmitry-Peskov/pandas-shredder/issues"
    },
    "split_keywords": [
        "pandas",
        " dataframe",
        " shredder",
        " slice",
        " slicer"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adfe264e97eb9a391e524ca43573bac7a0aa46182f97b838ee9343624a66a602",
                "md5": "d885d49a81c9f2a303e33ecb6c2da851",
                "sha256": "dc2b560d6b1fab9f99fa06c1bdfc9e439b864e081f9e9ea030ee0b7cefb98496"
            },
            "downloads": -1,
            "filename": "pandas_shredder-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d885d49a81c9f2a303e33ecb6c2da851",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 8168,
            "upload_time": "2024-12-04T12:35:41",
            "upload_time_iso_8601": "2024-12-04T12:35:41.184476Z",
            "url": "https://files.pythonhosted.org/packages/ad/fe/264e97eb9a391e524ca43573bac7a0aa46182f97b838ee9343624a66a602/pandas_shredder-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee4bb9793ca9f8c17b631af8bc8f7293cfc7dedcf0ce74aab12020e56856dde5",
                "md5": "1da5754ade72fc26637a31a0875381c3",
                "sha256": "f0caf229feb7997fa2fbadd36b114aae00996040b20dbb86fe9bf2833c26bded"
            },
            "downloads": -1,
            "filename": "pandas_shredder-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1da5754ade72fc26637a31a0875381c3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 7607,
            "upload_time": "2024-12-04T12:35:42",
            "upload_time_iso_8601": "2024-12-04T12:35:42.615985Z",
            "url": "https://files.pythonhosted.org/packages/ee/4b/b9793ca9f8c17b631af8bc8f7293cfc7dedcf0ce74aab12020e56856dde5/pandas_shredder-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-04 12:35:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Dmitry-Peskov",
    "github_project": "pandas-shredder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pandas-shredder"
}
        
Elapsed time: 0.38308s