Name | pandas-shredder JSON |
Version |
0.0.2
JSON |
| download |
home_page | None |
Summary | Измельчитель DataFrame`ов Pandas на файлы с фиксированным количеством строк |
upload_time | 2024-12-04 12:35:42 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | None |
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"
}