Skip to content

Commit 7ade15d

Browse files
サンプルプログラムの構築
1 parent 9491dcb commit 7ade15d

21 files changed

+1020
-160
lines changed

.gitignore

+2-159
Original file line numberDiff line numberDiff line change
@@ -1,160 +1,3 @@
1-
# Byte-compiled / optimized / DLL files
21
__pycache__/
3-
*.py[cod]
4-
*$py.class
5-
6-
# C extensions
7-
*.so
8-
9-
# Distribution / packaging
10-
.Python
11-
build/
12-
develop-eggs/
13-
dist/
14-
downloads/
15-
eggs/
16-
.eggs/
17-
lib/
18-
lib64/
19-
parts/
20-
sdist/
21-
var/
22-
wheels/
23-
share/python-wheels/
24-
*.egg-info/
25-
.installed.cfg
26-
*.egg
27-
MANIFEST
28-
29-
# PyInstaller
30-
# Usually these files are written by a python script from a template
31-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32-
*.manifest
33-
*.spec
34-
35-
# Installer logs
36-
pip-log.txt
37-
pip-delete-this-directory.txt
38-
39-
# Unit test / coverage reports
40-
htmlcov/
41-
.tox/
42-
.nox/
43-
.coverage
44-
.coverage.*
45-
.cache
46-
nosetests.xml
47-
coverage.xml
48-
*.cover
49-
*.py,cover
50-
.hypothesis/
51-
.pytest_cache/
52-
cover/
53-
54-
# Translations
55-
*.mo
56-
*.pot
57-
58-
# Django stuff:
59-
*.log
60-
local_settings.py
61-
db.sqlite3
62-
db.sqlite3-journal
63-
64-
# Flask stuff:
65-
instance/
66-
.webassets-cache
67-
68-
# Scrapy stuff:
69-
.scrapy
70-
71-
# Sphinx documentation
72-
docs/_build/
73-
74-
# PyBuilder
75-
.pybuilder/
76-
target/
77-
78-
# Jupyter Notebook
79-
.ipynb_checkpoints
80-
81-
# IPython
82-
profile_default/
83-
ipython_config.py
84-
85-
# pyenv
86-
# For a library or package, you might want to ignore these files since the code is
87-
# intended to run in multiple environments; otherwise, check them in:
88-
# .python-version
89-
90-
# pipenv
91-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94-
# install all needed dependencies.
95-
#Pipfile.lock
96-
97-
# poetry
98-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99-
# This is especially recommended for binary packages to ensure reproducibility, and is more
100-
# commonly ignored for libraries.
101-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102-
#poetry.lock
103-
104-
# pdm
105-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106-
#pdm.lock
107-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108-
# in version control.
109-
# https://pdm.fming.dev/#use-with-ide
110-
.pdm.toml
111-
112-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113-
__pypackages__/
114-
115-
# Celery stuff
116-
celerybeat-schedule
117-
celerybeat.pid
118-
119-
# SageMath parsed files
120-
*.sage.py
121-
122-
# Environments
123-
.env
124-
.venv
125-
env/
126-
venv/
127-
ENV/
128-
env.bak/
129-
venv.bak/
130-
131-
# Spyder project settings
132-
.spyderproject
133-
.spyproject
134-
135-
# Rope project settings
136-
.ropeproject
137-
138-
# mkdocs documentation
139-
/site
140-
141-
# mypy
142-
.mypy_cache/
143-
.dmypy.json
144-
dmypy.json
145-
146-
# Pyre type checker
147-
.pyre/
148-
149-
# pytype static type analyzer
150-
.pytype/
151-
152-
# Cython debug symbols
153-
cython_debug/
154-
155-
# PyCharm
156-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158-
# and can be added to the global gitignore or merged into this file. For a more nuclear
159-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160-
#.idea/
2+
.ipynb_checkpoints/
3+
libs/.ipynb_checkpoints/

.pre-commit-config.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
repos:
2+
- repo: https://github.com/charliermarsh/ruff-pre-commit
3+
rev: v0.1.6
4+
hooks:
5+
- id: ruff
6+
- id: ruff-format

.python-version

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.11.6

README.md

+38-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,38 @@
1-
# parse-csv-sample
1+
# Lab Bank CSVエクスポートデータ活用サンプル
2+
3+
本リポジトリは[Lab Bank](https://labbank.jp/)で出力されたCSVエクスポートデータを活用するための、サンプルコードを格納しております。
4+
5+
```
6+
.
7+
├── README.md ... 本ドキュメント
8+
├── export ... サンプルコード向けのダミーのエクスポートデータ
9+
├── libs ... pandasを簡単に扱うための関数
10+
└── sample.ipynb ... サンプルコード
11+
```
12+
13+
## 使い方
14+
15+
### 動作環境
16+
17+
- [[email protected]](https://virtualenv.pypa.io/en/latest/installation.html)
18+
19+
20+
```sh
21+
# virtualenvを有効化
22+
$ python3 -m virtualenv -p 3.11.6 csv-sample
23+
$ source csv-sample/bin/activate
24+
25+
# 必要なライブラリのインストール
26+
$ pip install -r requirements.txt
27+
28+
# Jupyter Labを起動
29+
$ jupyter lab --NotebookApp.token='' --NotebookApp.password=''
30+
```
31+
32+
[http://localhost:8888/lab](http://localhost:8888/lab)にアクセスし、sample.ipynbを実行してください。
33+
![サンプルコードの開き方](./img/サンプルコードの開き方.png)
34+
35+
```sh
36+
# virtualenvを終了
37+
$ source csv-sample/bin/deactivate
38+
```

export/project.csv

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
project.__id,project.__record_name,project.client_name,project.deadline,project.purpose,project.memo
2+
プロジェクト.ID,プロジェクト.プロジェクト名,プロジェクト.顧客名,プロジェクト.期限,プロジェクト.目的,プロジェクト.メモ
3+
text,text,text,date,text,text
4+
df9d5402-218b-4d0d-87f0-c486340896ea,test,test,2024/5/29,aaaaa,
5+
cfd451e2-8e25-4632-9890-33695f583ac6,test2,test2,2024/5/22,test2,test2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
theme_b_breaking_evaluation_conditions.__id,theme_b_breaking_evaluation_conditions.speed,theme_b_breaking_evaluation_conditions.wet_road,theme_b_breaking_evaluation_conditions.vehicle
2+
制動性能評価.条件ID,制動性能評価.開始速度,制動性能評価.ウェット路面,制動性能評価.試験車両
3+
text,number,boolean,text
4+
43dcdd39-f9ed-456c-b1bc-17918e866061,60,true,10daf7c0-941a-42e9-8913-07cb65ad6e81
5+
e187d3b1-e610-49b3-9879-fd070b792ed3,80,true,10daf7c0-941a-42e9-8913-07cb65ad6e81
6+
35960a3e-5d72-482b-82ae-f8b068a65a4d,100,true,10daf7c0-941a-42e9-8913-07cb65ad6e81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
theme_b_breaking_evaluation_results.__id,theme_b_breaking_evaluation_results.condition_id,make_form.__id,theme_b_breaking_evaluation_results.distance,theme_b_breaking_evaluation_results.duration,theme_b_breaking_evaluation_results.uneven_wear,theme_b_breaking_evaluation_results.squeal_sound,theme_b_breaking_evaluation_results.date,theme_b_breaking_evaluation_results.image
2+
制動性能評価.結果ID,制動性能評価.条件ID,成形.ID,制動性能評価.制動距離,制動性能評価.制動時間,制動性能評価.偏摩耗,制動性能評価.スキール音,制動性能評価.実施日,制動性能評価.参考画像
3+
text,text,text,number,number,boolean,number,date,number
4+
293936ec-8ff5-45be-92ff-72fe55863827,43dcdd39-f9ed-456c-b1bc-17918e866061,3277d707-df85-4444-b3ef-10b988e005a6,11.3,9.8,false,10,2024/5/12,
5+
f9a570f4-ff37-45de-9ae3-732812c1bb39,43dcdd39-f9ed-456c-b1bc-17918e866061,82a44f81-0f9e-43ed-8b42-3b774a5a3124,12.45,10.5,false,11,2024/5/13,
6+
0bba79e4-5061-4833-83a6-08af83fb89ee,43dcdd39-f9ed-456c-b1bc-17918e866061,b51ad19f-34dd-4e2d-971e-31494e5b0b7f,11.98,10.7,false,12,2024/5/14,
7+
4aacfc15-2a8e-4b5a-ae8c-111ec02bde94,43dcdd39-f9ed-456c-b1bc-17918e866061,193a304b-2e7b-4b01-8bb2-6aff8ff7df5f,11.22,11.2,false,13,2024/5/15,
8+
7623f093-5087-4123-b5ce-ce2023e23174,43dcdd39-f9ed-456c-b1bc-17918e866061,0542caed-ebe0-47c2-8a9e-ec9dc137853c,10.8,9.6,false,11,2024/5/16,
9+
af1b1a19-5933-4c20-9ec5-c092814854ef,e187d3b1-e610-49b3-9879-fd070b792ed3,3277d707-df85-4444-b3ef-10b988e005a6,12.56,11.8,false,15,2024/5/17,
10+
794ee15d-ddbc-427a-9063-1e4be7349e4e,e187d3b1-e610-49b3-9879-fd070b792ed3,82a44f81-0f9e-43ed-8b42-3b774a5a3124,13.45,12.5,false,18,2024/5/18,
11+
96ce3777-7b4e-4ccf-a754-d312c2e45322,e187d3b1-e610-49b3-9879-fd070b792ed3,b51ad19f-34dd-4e2d-971e-31494e5b0b7f,14.22,14.5,false,14,2024/5/19,
12+
82caf155-af9b-4df3-adc9-e8641a6e0e6f,e187d3b1-e610-49b3-9879-fd070b792ed3,193a304b-2e7b-4b01-8bb2-6aff8ff7df5f,13.15,12.8,false,12,2024/5/20,
13+
bab92498-1a40-4544-9ad7-79a0b1f97966,e187d3b1-e610-49b3-9879-fd070b792ed3,0542caed-ebe0-47c2-8a9e-ec9dc137853c,14.5,12.9,false,11,2024/5/21,
14+
f8f3955f-e371-4cbe-9934-d77ce51dc425,35960a3e-5d72-482b-82ae-f8b068a65a4d,3277d707-df85-4444-b3ef-10b988e005a6,20.5,19.5,false,18,2024/5/22,
15+
4b49cf8c-6b17-47b4-affa-4948128e0633,35960a3e-5d72-482b-82ae-f8b068a65a4d,82a44f81-0f9e-43ed-8b42-3b774a5a3124,19.81,16.3,false,19,2024/5/23,
16+
8f448e34-ba9a-4225-8259-77745eea9314,35960a3e-5d72-482b-82ae-f8b068a65a4d,b51ad19f-34dd-4e2d-971e-31494e5b0b7f,21.45,18.5,true,24,2024/5/24,
17+
ee3286eb-3ec8-4ff6-8702-45d72502feaf,35960a3e-5d72-482b-82ae-f8b068a65a4d,193a304b-2e7b-4b01-8bb2-6aff8ff7df5f,24.5,20.1,true,26,2024/5/25,
18+
7a08f765-d6f9-491b-8866-085f1e72cfbf,35960a3e-5d72-482b-82ae-f8b068a65a4d,0542caed-ebe0-47c2-8a9e-ec9dc137853c,25.6,19.5,true,28,2024/5/26,
19+
2e23a4c8-46be-4d6a-b3af-493f23503aa5,43dcdd39-f9ed-456c-b1bc-17918e866061,229d1635-2af7-4bab-9c14-c610a7cc9aaf,9.98,8.55,false,9.8,2024/5/27,
20+
776d1d18-6f39-4862-9045-3aac78645bdb,43dcdd39-f9ed-456c-b1bc-17918e866061,5a1e704e-c53e-4b91-b7f4-74782f9bf153,10.12,9.3,false,9.6,2024/5/28,
21+
23da5cd4-c04d-486b-a554-9793cec77439,43dcdd39-f9ed-456c-b1bc-17918e866061,d9a8b647-4591-46f5-a6d5-a8d10b74c81b,10.88,8.9,false,10.34,2024/5/29,
22+
4ee66c1b-9fc3-4e19-b4c6-4a9ade04f655,43dcdd39-f9ed-456c-b1bc-17918e866061,39109815-1f26-41d3-ad70-50201cc2c674,9.99,8.56,false,12.5,2024/5/30,
23+
c79d22c4-988a-4354-b2d6-e2ce624d7a8b,43dcdd39-f9ed-456c-b1bc-17918e866061,0542caed-ebe0-47c2-8a9e-ec9dc137853c,10.54,9.5,false,11.5,2024/5/31,
24+
007f85cd-9576-4ac8-ba9b-cf492185521c,e187d3b1-e610-49b3-9879-fd070b792ed3,229d1635-2af7-4bab-9c14-c610a7cc9aaf,11.9,10,false,15,2024/6/1,
25+
e875854a-15f2-4a4c-954b-f0478859669f,e187d3b1-e610-49b3-9879-fd070b792ed3,5a1e704e-c53e-4b91-b7f4-74782f9bf153,12.86,11.5,false,16,2024/6/2,
26+
93a4c21b-db3b-44e7-97f8-c027171f2605,e187d3b1-e610-49b3-9879-fd070b792ed3,d9a8b647-4591-46f5-a6d5-a8d10b74c81b,13.33,12.4,false,17,2024/6/3,
27+
13e6d8a7-5836-4de1-b5e6-b75f8426be92,e187d3b1-e610-49b3-9879-fd070b792ed3,39109815-1f26-41d3-ad70-50201cc2c674,12.55,11,false,14,2024/6/4,
28+
868e3362-276f-4bd1-8549-154e11c4f672,e187d3b1-e610-49b3-9879-fd070b792ed3,0542caed-ebe0-47c2-8a9e-ec9dc137853c,13.8,12.5,false,15,2024/6/5,
29+
9d762953-2710-4c07-ac94-69093bcc76d4,35960a3e-5d72-482b-82ae-f8b068a65a4d,229d1635-2af7-4bab-9c14-c610a7cc9aaf,19.55,18.5,false,14,2024/6/6,
30+
5ea3c8fd-f025-44b9-ae34-57b3a2a3a78d,35960a3e-5d72-482b-82ae-f8b068a65a4d,5a1e704e-c53e-4b91-b7f4-74782f9bf153,19,18.2,false,14,2024/6/7,
31+
fa8a4676-b181-4036-9932-6a424bf1a912,35960a3e-5d72-482b-82ae-f8b068a65a4d,d9a8b647-4591-46f5-a6d5-a8d10b74c81b,20.53,19.2,true,26,2024/6/8,
32+
626d1544-0e48-4da9-aecb-517a83b36e73,35960a3e-5d72-482b-82ae-f8b068a65a4d,39109815-1f26-41d3-ad70-50201cc2c674,23.22,20.1,true,33,2024/6/9,
33+
5895591c-2123-4762-9bc7-07d7555a8552,35960a3e-5d72-482b-82ae-f8b068a65a4d,0542caed-ebe0-47c2-8a9e-ec9dc137853c,24.5,22.5,true,32,2024/6/10,

export/theme_b_carbon_black.csv

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
theme_b_carbon_black.__id,theme_b_carbon_black.name,theme_b_carbon_black.param1,theme_b_carbon_black.param2,theme_b_carbon_black.maker
2+
カーボンブラック.ID,カーボンブラック.名前,カーボンブラック.物性1,カーボンブラック.物性2,カーボンブラック.製造元
3+
text,text,number,number,text
4+
1c9acec0-fe04-4c11-960e-ef1c50edb503,carbon_black1,100,38,ef47e88b-c316-4503-9e62-1597778a72c0
5+
b29bd7a2-a6d5-4c0a-b0a0-24c6e878d681,carbon_black2,120,40,1ac9039b-ac81-4b9c-8f22-3c285adcb508
6+
1be837e0-a159-4e95-9cfb-f06ada79e8cc,carbon_black3,98,42,838ec269-6d25-4f14-81bd-b09e14da4ade
7+
c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,carbon_black4,121,39,24cbf099-108a-4ce1-a6c9-4f96e636734d
8+
38dbf93a-5ae1-4a70-a671-ec6533a1b2a5,carbon_black5,94.5,36,eacb7a51-9eb4-45e1-932c-72711fea02c1

export/theme_b_make_form.csv

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
theme_b_make_form.__id,dependencyDevStep.__id,theme_b_make_form.tread_width,theme_b_make_form.carcass_length
2+
成形.ID,前工程.ID,成形.トレッド幅,成形.カーカス長
3+
text,text,number,number
4+
3277d707-df85-4444-b3ef-10b988e005a6,2ed6f86e-9e23-4baa-ae57-33ef1817e160,225,450
5+
82a44f81-0f9e-43ed-8b42-3b774a5a3124,e51ee3f1-2ef9-4685-9bb1-717dedecd32a,225,450
6+
b51ad19f-34dd-4e2d-971e-31494e5b0b7f,7ffb28c8-ad14-42f2-938b-c83bc2c2eae9,225,450
7+
193a304b-2e7b-4b01-8bb2-6aff8ff7df5f,f56206b8-1766-4d3e-85f9-3eea07661c45,225,450
8+
0542caed-ebe0-47c2-8a9e-ec9dc137853c,66c2148c-df73-4896-b4b0-5e83aedb3f7a,225,450
9+
229d1635-2af7-4bab-9c14-c610a7cc9aaf,2ed6f86e-9e23-4baa-ae57-33ef1817e160,230,450
10+
5a1e704e-c53e-4b91-b7f4-74782f9bf153,e51ee3f1-2ef9-4685-9bb1-717dedecd32a,230,450
11+
d9a8b647-4591-46f5-a6d5-a8d10b74c81b,7ffb28c8-ad14-42f2-938b-c83bc2c2eae9,230,450
12+
39109815-1f26-41d3-ad70-50201cc2c674,f56206b8-1766-4d3e-85f9-3eea07661c45,230,450
13+
1dd85480-95d5-4383-b998-0709e6eaf020,66c2148c-df73-4896-b4b0-5e83aedb3f7a,230,450

export/theme_b_maker.csv

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
theme_b_maker.__id,theme_b_maker.name
2+
製造元.ID,製造元.社名
3+
text,text
4+
ef47e88b-c316-4503-9e62-1597778a72c0,Aidemy
5+
1ac9039b-ac81-4b9c-8f22-3c285adcb508,Bidemy
6+
838ec269-6d25-4f14-81bd-b09e14da4ade,Cidemy
7+
24cbf099-108a-4ce1-a6c9-4f96e636734d,Didemy
8+
eacb7a51-9eb4-45e1-932c-72711fea02c1,Eidemy
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
theme_b_recipe_material_amounts.__id,theme_b_recipe_material_amounts.__sub_recipe_id,theme_b_recipe_material_amounts.__master_name,theme_b_recipe_material_amounts.__master_id,theme_b_recipe_material_amounts.amount
2+
レシピ.ID,レシピ.サブレシピID,レシピ.材料マスタ,レシピ.材料マスタID,レシピ.分量
3+
text,text,text,text,text
4+
137bb1d9-4132-4044-9e30-1463f5967079,b12cd3a9-2b87-4aea-964a-4e64f4bdf0cc,theme_b_rubber,aa610527-eb34-4430-bbc0-fb1bbfb3f27d,100
5+
e770e3ca-6721-4b13-af09-7fc991c99110,b12cd3a9-2b87-4aea-964a-4e64f4bdf0cc,theme_b_carbon_black,c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,50
6+
f0a33669-3b15-41e4-9783-9294c33fdd1f,45c3aafd-d8ed-418f-8ac4-60a6bacc4e06,theme_b_rubber,aa610527-eb34-4430-bbc0-fb1bbfb3f27d,80
7+
be83a8c0-5999-4362-b8de-828ab10491d6,45c3aafd-d8ed-418f-8ac4-60a6bacc4e06,theme_b_carbon_black,c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,70
8+
3113a3ab-8c50-416f-9131-bbbc5feb3887,07c6f1a1-2032-40dc-9f3e-b8102915a981,theme_b_rubber,aa610527-eb34-4430-bbc0-fb1bbfb3f27d,70
9+
67ea7357-874d-4d5f-af35-d3311773ae68,07c6f1a1-2032-40dc-9f3e-b8102915a981,theme_b_carbon_black,c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,40
10+
62551a2c-c73d-411f-8b47-cfd559cff1c5,07c6f1a1-2032-40dc-9f3e-b8102915a981,theme_b_carbon_black,1be837e0-a159-4e95-9cfb-f06ada79e8cc,40
11+
7846d7de-588d-4f6b-8aa5-9c4e14fe36d7,f0c69b4b-235b-446b-ba8d-13a210cfd19d,theme_b_rubber,aa610527-eb34-4430-bbc0-fb1bbfb3f27d,50
12+
9f2f5325-8702-4f28-8c6a-aadabd35c6b5,f0c69b4b-235b-446b-ba8d-13a210cfd19d,theme_b_carbon_black,c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,20
13+
94521e16-662b-492f-bae3-d4ca0280a471,f0c69b4b-235b-446b-ba8d-13a210cfd19d,theme_b_carbon_black,1be837e0-a159-4e95-9cfb-f06ada79e8cc,30
14+
3f8d58c5-3b99-48b6-90f3-f3189d90da98,f0c69b4b-235b-446b-ba8d-13a210cfd19d,theme_b_rubber,df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,50
15+
51e1fd6b-20ff-4413-857e-1af5eb0fe1e8,f5047c36-d953-459f-b681-464fd43b2c1d,theme_b_carbon_black,c9b28d45-c80c-4bdc-b8d2-ad75fb67c403,50
16+
a0defa20-c751-4510-b879-99343c9a8d98,f5047c36-d953-459f-b681-464fd43b2c1d,theme_b_rubber,df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,100
17+
72ae2e2f-3b3f-4138-b0b9-6524daed796f,71cf5a34-ecf5-4481-828d-ab48b00ec23d,theme_b_rubber,df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,30
18+
6acef913-c0b8-4872-8a5f-8f8bdb0d05d3,71cf5a34-ecf5-4481-828d-ab48b00ec23d,theme_b_carbon_black,b29bd7a2-a6d5-4c0a-b0a0-24c6e878d681,10
19+
0d0d1771-d0b8-47ac-989e-87ffa52147fa,09687ba8-6c96-4d74-a83d-bd875bbc73d5,theme_b_rubber,df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,30
20+
41a65d10-350f-4b28-ad50-48357e691db7,09687ba8-6c96-4d74-a83d-bd875bbc73d5,theme_b_carbon_black,1c9acec0-fe04-4c11-960e-ef1c50edb503,10
21+
6d4a71bb-52d7-4c6e-bec7-d92bf071bfc1,ca89ec11-ef1f-4141-8826-9fef6ab8739d,theme_b_rubber,df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,20
22+
671affa3-666f-4dd0-a24e-c8bd607710fb,ca89ec11-ef1f-4141-8826-9fef6ab8739d,theme_b_carbon_black,1c9acec0-fe04-4c11-960e-ef1c50edb503,15

export/theme_b_recipe_recipes.csv

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
theme_b_recipe_recipes.__id,theme_b_recipe_recipes.__recipe_name,project.__id,theme_b_recipe_recipes.temp,theme_b_recipe_recipes.additive
2+
レシピ.ID,レシピ.レシピ名,プロジェクト.ID,レシピ.温度,レシピ.添加剤
3+
text,text,text,number,boolean
4+
2ed6f86e-9e23-4baa-ae57-33ef1817e160,レシピ1,df9d5402-218b-4d0d-87f0-c486340896ea,150,true
5+
e51ee3f1-2ef9-4685-9bb1-717dedecd32a,レシピ2,df9d5402-218b-4d0d-87f0-c486340896ea,150,false
6+
7ffb28c8-ad14-42f2-938b-c83bc2c2eae9,レシピ3,df9d5402-218b-4d0d-87f0-c486340896ea,200,true
7+
f56206b8-1766-4d3e-85f9-3eea07661c45,レシピ4,df9d5402-218b-4d0d-87f0-c486340896ea,200,false
8+
66c2148c-df73-4896-b4b0-5e83aedb3f7a,レシピ5,df9d5402-218b-4d0d-87f0-c486340896ea,120,true

export/theme_b_recipe_sub_recipes.csv

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
theme_b_recipe_sub_recipes.__id,theme_b_recipe_recipes.__id,theme_b_recipe_sub_recipes.__name,theme_b_recipe_sub_recipes.additive
2+
レシピ.サブレシピID,レシピ.レシピID,レシピ.サブレシピ名,レシピ.添加剤
3+
text,text,text,boolean
4+
b12cd3a9-2b87-4aea-964a-4e64f4bdf0cc,2ed6f86e-9e23-4baa-ae57-33ef1817e160,配合ステップ1,false
5+
45c3aafd-d8ed-418f-8ac4-60a6bacc4e06,e51ee3f1-2ef9-4685-9bb1-717dedecd32a,配合ステップ1,false
6+
07c6f1a1-2032-40dc-9f3e-b8102915a981,7ffb28c8-ad14-42f2-938b-c83bc2c2eae9,配合ステップ1,true
7+
f0c69b4b-235b-446b-ba8d-13a210cfd19d,f56206b8-1766-4d3e-85f9-3eea07661c45,配合ステップ1,true
8+
f5047c36-d953-459f-b681-464fd43b2c1d,66c2148c-df73-4896-b4b0-5e83aedb3f7a,配合ステップ1,false
9+
71cf5a34-ecf5-4481-828d-ab48b00ec23d,2ed6f86e-9e23-4baa-ae57-33ef1817e160,配合ステップ2,true
10+
a0a85502-aca2-4efa-bdac-4631b9366b35,e51ee3f1-2ef9-4685-9bb1-717dedecd32a,配合ステップ2,false
11+
09687ba8-6c96-4d74-a83d-bd875bbc73d5,7ffb28c8-ad14-42f2-938b-c83bc2c2eae9,配合ステップ2,true
12+
200a639c-4973-4f4a-ac13-b4d90870232e,f56206b8-1766-4d3e-85f9-3eea07661c45,配合ステップ2,false
13+
ca89ec11-ef1f-4141-8826-9fef6ab8739d,66c2148c-df73-4896-b4b0-5e83aedb3f7a,配合ステップ2,true

export/theme_b_rubber.csv

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
theme_b_rubber.__id,theme_b_rubber.name,theme_b_rubber.param1,theme_b_rubber.param2,theme_b_rubber.maker
2+
ゴム.ID,ゴム.名前,ゴム.物性1,ゴム.物性2,ゴム.製造元
3+
text,text,number,number,text
4+
aa610527-eb34-4430-bbc0-fb1bbfb3f27d,rubber1,50,12,ef47e88b-c316-4503-9e62-1597778a72c0
5+
df2225e3-67d4-4670-9dcb-5bfd0e42bc7b,rubber2,80,11.5,1ac9039b-ac81-4b9c-8f22-3c285adcb508
6+
00c40efd-3a6b-46fd-9d9b-89c3af0b277c,rubber3,88,22.1,838ec269-6d25-4f14-81bd-b09e14da4ade
7+
5c7bcbc8-9dd6-4757-b29d-c3643c07612a,rubber4,90,18.6,24cbf099-108a-4ce1-a6c9-4f96e636734d
8+
4f581462-34b2-40b5-9488-0de1b17ec7de,rubber5,56.3,11,eacb7a51-9eb4-45e1-932c-72711fea02c1

export/theme_b_vehicle.csv

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
theme_b_vehicle.__id,theme_b_vehicle.name,theme_b_vehicle.weight
2+
試験車両.ID,試験車両.車体番号,試験車両.車体重量
3+
text,text,number
4+
b63d5516-89ad-4f19-b98d-da67d1de5d97,001,1200
5+
10daf7c0-941a-42e9-8913-07cb65ad6e81,002,1480
92 KB
Loading

libs/combine.py

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import pandas as pd
2+
3+
4+
def merge_columns_df(df: pd.DataFrame, target_keys: list[str], merged_key: str) -> pd.DataFrame:
5+
"""
6+
target_keysで指定された列を結合し、新しくmerged_keyで指定された列を作成する。
7+
同じ行の中でNaNではない値が存在する場合はそれを採用する、そのため欠損値がNaN以外の場合は動作しない。
8+
複数の列でNaN以外が存在する場合は、target_keysのインデックスが小さい値が優先される。
9+
また関数が実行されると、引数で渡されたdfの元の変数も書き換わる。
10+
11+
ex.
12+
--- code ---
13+
df = pd.DataFrame({
14+
'a': [1, 2, 3],
15+
'b': [4, NaN, 6],
16+
'c': [NaN, 8, NaN]
17+
})
18+
merge_columns_df(df, ['b', 'c'], 'd')
19+
print(df)
20+
21+
--- output ---
22+
0 a d
23+
1 1 4
24+
2 2 8
25+
3 3 6
26+
"""
27+
28+
def merge_value(row: pd.Series) -> str:
29+
return list(filter(lambda v: not pd.isna(v), [row[k] for k in target_keys]))[0]
30+
31+
df[merged_key] = df.apply(merge_value, axis=1)
32+
df.drop(target_keys, axis=1, inplace=True)
33+
return df

0 commit comments

Comments
 (0)