Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/04-开发计划/工具C_功能按钮开发计划_V1.0.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

684 lines
35 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 蟾・蜈キC 蜉溯<E89C89>謖蛾聴蠑€蜿題ョ。蛻?V1.0
**譁<>。」迚域悽**: V1.4 (Phase 2+ 郛コ螟ア蛟シ蝪ォ陦・蜉溯<E89C89>€蜿醍沿)
**蛻帛サコ譌・譛<EFBDA5>**: 2025-12-08
**譛€蜷取峩譁?*: 2025-12-10
**雍溯エ」莠?*: AI蠑€蜿大屬髦?
**鬘ケ逶ョ迥カ諤?*: 笨?Phase 1-2 蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>7荳ェ譬ク蠢<EFBDB8>粥閭?+ NA螟<41>炊莨伜喧 + Pivot莨伜喧 + 郛コ螟ア蛟シ蝪ォ陦・<E999A6>亥シ€蜿大ョ梧<EFBDAE><E6A2A7>勲ICE蠕<45><EFBFBD>ッ包シ<E58C85>
---
## <20>櫨 驥崎ヲ∵楔譫<E6A594>序譖エ<E8AD96>?025-12-08<30>?
**蜀ウ遲<EFBDB3>**<2A>壼粥閭ス謖蛾聴驥<E881B4><E9A9A5>?*鬚<><E9AC9A>Python蜃ス謨ー**譫カ譫<EFBDB6>シ瑚€碁撼蜉ィ諤∽サ」遐∫函謌舌€?
**蜿俶峩蜴溷屏**<EFBFBD>?- 笶?譌ァ譁ケ譯茨シ壼勘諤∵蕎謗・Python莉」遐∝ュ礼ャヲ荳?竊?荳咲ィウ螳壹€∵怏螳牙<E89EB3>鬟朱勦縲<E58BA6>埓莉・豬玖ッ?- 笨?譁ー譁ケ譯茨シ夊ー<E5A48A>畑鬚<E79591><E9AC9A>逧Пython蜃ス謨ー 竊?遞ウ螳壹€∝ョ牙<EFBDAE><EFBFBD>ォ俶€ァ閭ス縲∵<E7B8B2>扈エ謚、
**蠖灘燕螳梧<E89EB3>**<EFBFBD>?025-12-08<30>会シ<E4BC9A>
- 笨?Python蠕ョ譛榊苅<E6A68A>啻operations/` 讓。蝮<EFBDA1>
- filter.py<70>磯ォ倡コァ遲幃€会シ<E4BC9A>
- recode.py<70>域焚蛟シ譏<EFBDBC><EFBFBD><EFBFBD>
- binning.py<70>育函謌仙<E8AC8C>邀サ蜿倬㍼<E580AC><E38DBC>
- conditional.py<70>域擅莉カ逕滓<E98095>蛻暦シ? - dropna.py<70>亥唖髯、郛コ螟ア蛟シ<E89B9F><EFBDBC>
- compute.py<70>郁ョ。邂怜<E98282><E6809C>? - pivot.py<70>磯柄陦ィ霓ャ螳ス陦ィ<E999A6>?- 笨?Python蠕ョ譛榊苅<E6A68A><E88B85>7荳ェAPI遶ッ轤ケ<E8BDA4><EFBDB9>/api/operations/*`<60>?- 笨?Node.js蜷守ォッ<EFBDAB>啻QuickActionService.ts`<EFBFBD>?荳ェ謇ァ陦梧婿豕包シ<E58C85>
- 笨?Node.js蜷守ォッ<EFBDAB>啻QuickActionController.ts`<60>亥ョ梧紛髞呵ッッ螟<EFBDAF><EFBFBD><E7828A>
- 笨?蜑咲ォッUI<55>?荳ェDialog扈<67>サカ<EFBDBB>亥ョ梧紛莠、莠堤阜髱「<E9ABB1><EFBDA2>
- 笨?蜑咲ォッ蟾・蜈キ譬擾シ<E693BE>7荳ェ蜉溯<E89C89>謖蛾聴<E89BBE>亥キイ蜷ッ逕ィ<E98095><EFBDA8>
- 笨?蛻<>髯、<E9ABAF>啻QuickActionCodeGenerator.ts`<60>井ク榊<EFBDB8>菴ソ逕ィ<E98095><EFBDA8>
**譫カ譫<EFBDB6>ッケ豈<EFBDB9>**<EFBFBD>?
| 扈エ蠎ヲ | 譌ァ譁ケ譯?| 笨?譁ー譁ケ譯?|
|------|--------|---------|
| 遞ウ螳壽€?| 笞<><E7AC9E><EFBFBD> 蟄礼ャヲ荳イ諡シ謗・譏灘<E8AD8F><EFBFBD> | 笨?鬚<><E9AC9A>蜃ス謨ー扈剰ソ<E589B0>オ玖ッ<E78E96> |
| 螳牙<E89EB3>諤?| 笞<><E7AC9E><EFBFBD> 譛画ウィ蜈・鬟朱<E9AC9F>?| 笨?譌<>莉」遐∵ウィ蜈・鬟朱<E9AC9F>?|
| 諤ァ閭ス | 笞<><E7AC9E><EFBFBD>€隗」譫蝉サ」遐<EFBDA3> | 笨?逶エ謗・隹<EFBDA5>畑蜃ス謨ー |
| 蜿ッ扈エ謚?| 笞<><E7AC9E><EFBFBD> 蜷守ォッ諡シ謗・蟄礼ャヲ荳?| 笨?Python髮<6E>クュ邂。逅<EFBDA1> |
| 蜿ッ豬玖ッ?| 笶?髫セ莉・豬玖ッ<E78E96> | 笨?譏謎コ主黒蜈<E9BB92>オ玖ッ<E78E96> |
---
## <20>搭 譁<>。」逶ョ蠖<EFBDAE>
- [1. 讎りソー](#1-讎りソー)
- [2. 隶セ隶。蜴溷<E89CB4>](#2-隶セ隶。蜴溷<E89CB4>)
- [3. 蜉溯<E89C89><EFBFBD>](#3-蜉溯<E89C89><EFBFBD>)
- [4. 蛻<>悄蠑€蜿題ョ。蛻綻(#4-蛻<>悄蠑€蜿題ョ。蛻?
- [5. 謚€譛ッ譫カ譫Ь(#5-謚€譛ッ譫カ譫?
- [6. 隸ヲ扈<EFBDA6>ョセ隶。](#6-隸ヲ扈<EFBDA6>ョセ隶。)
- [7. 鬪梧噺譬<E599BA>](#7-鬪梧噺譬<E599BA>)
---
## 1. 讎りソー
### 1.1 閭梧勹
蟾・蜈キC蠖灘燕蟾イ螳樒鴫AI蟇ケ隸晏シ乗焚謐ョ貂<EFBFBD>エ怜粥閭ス縲ゆクコ謠仙合逕ィ謌キ菴馴ェ悟柱謫堺ス懈譜邇<EFBFBD>シ碁怙隕<EFBFBD>宙蟇?*鬮倬「代€<E4BBA3>€夂畑縲∵<E7B8B2><E288B5>㊥蛹<E38AA5>**逧<>焚謐ョ貂<EFBDAE>エ玲桃菴懷シ€蜿大粥閭ス謖蛾聴<E89BBE>悟ョ樒鴫**荳€髞ョ蠑乗桃菴<E6A183>**縲?
### 1.2 逶ョ譬<EFBDAE>
- 笨?謠仙合鬮倬「第桃菴懃噪謨育紫<E882B2>井サ?謠剰ソー髴€豎?蛻?荳€髞ョ轤ケ蜃?<3F>?- 笨?髯堺ス主ュヲ荵<EFBDA6>謌先悽<E58588>育峩隗ら噪UI莉」譖ソ閾ェ辟カ隸ュ險€謠剰ソー<EFBDBF>?- 笨?菫晄戟轣オ豢サ諤ァ<E8ABA4>亥、肴揩髴€豎ゆサ榊庄菴ソ逕ィAI蟇ケ隸晢シ?- 笨?隨ヲ蜷亥現逍礼ァ醍<EFBDA7>皮畑謌キ荵<EFBDB7>諠ッ<E8ABA0>亥盾閠ゴPSS縲・xcel遲我ク謎ク壼キ・蜈キ<E89C88><EFBDB7>
### 1.3 騾ら畑蝨コ譎ッ
**蜉溯<E89C89>謖蛾聴騾ょ粋<E38287>?*
- 鬮倬「台スソ逕ィ<E98095>域ッ丈クェ謨ー謐ョ髮<EFBDAE><E9ABAE>€<C280><EFBFBD>
- 謫堺ス憺€夂畑<E5A482>井ク堺セ晁オ也音螳壻ク壼苅隗<E88B85><E99A97><EFBFBD>?- 蜿よ焚譏守。ョ<EFBDA1>亥庄莉・騾夊ソⅡI驟咲スョ<EFBDBD>?- 騾サ霎醍ョ€蜊包シ<E58C85>1-3豁・蜊ウ蜿ッ螳梧<E89EB3><E6A2A7><EFBFBD>
**AI蟇ケ隸晞€ょ粋<E38287>?*
- 菴朱「台スソ逕ィ<E98095><EFBFBD>蟆皮畑荳€谺。<E8B0BA><EFBDA1>
- 荳壼苅迚ケ螳夲シ郁ァ<E98381><EFBDA7><EFBFBD>シゑシ<E38291>
- 螟肴揩騾サ霎托シ亥、壽ュ・鬪、縲∝、壽擅莉カ<E88E89>?- 謗「邏「諤ァ謫堺ス懶シ磯怙逅<E68099>ァ」荳贋ク区枚<E58CBA><E69E9A>
---
## 2. 隶セ隶。蜴溷<E89CB4>
### 2.1 逕ィ謌キ菴馴ェ悟次蛻<E6ACA1>
1. **80/20豕募<E8B195>**<EFBFBD>夂畑謖蛾聴隗」蜀ウ80%逧<>€蜊暮怙豎ゑシ檎畑AI蟇ケ隸晁ァ」蜀ウ20%逧<>、肴揩髴€豎?2. **貂占ソ帛シ乗喚髴?*<2A>夂ョ€蜊募粥閭ス鮟倩ョ、譏セ遉コ<E98189>悟、肴揩騾蛾。ケ謚伜匠/鬮倡コァ讓。蠑<EFBDA1>
3. **蜊ウ譌カ蜿埼ヲ<E59FBC>**<EFBFBD>壽署萓幃「<EFBFBD>ァ亥粥閭ス<EFBFBD>瑚ョゥ逕ィ謌キ蝨ィ謇ァ陦悟燕逵句芦扈捺<EFBFBD>?4. **蜿ッ謦、髞€諤?*<2A>壽髪謖∵彫髞€<E9AB9E>域悴譚・迚域悽<E59F9F><EFBFBD>謠蝉セ?蛻帛サコ蜑ッ譛ャ"騾蛾。ケ
### 2.2 謚€譛ッ蜴溷<E89CB4>?
1. **笨?鬚<><E9AC9A>蜃ス謨ー譫カ譫<EFBDB6>**<EFBFBD>壼粥閭ス謖蛾聴隹<EFBFBD>畑鬚<EFBFBD><EFBFBD><EFBFBD>€∫サ剰ソ<EFBFBD>オ玖ッ慕噪Python蜃ス謨ー<EFBFBD>€碁撼蜉ィ諤∫函謌蝉サ」遐<EFBFBD><EFBFBD>
2. **譌<>迥カ諤∬ョセ隶?*<2A>壽ッ丈クェ謫堺ス懃峡遶具シ御ク堺セ晁オ門燕蠎冗憾諤?3. **螳牙<E89EB3>蜿ッ髱<EFBDAF>**<EFBFBD>夐「<EFBFBD><EFBFBD>蜃ス謨ー扈剰ソ<EFBFBD><EFBFBD><EFBFBD>オ玖ッ募柱鬪瑚ッ<EFBFBD>シ梧裏莉」遐∵ウィ蜈・鬟朱勦
4. **諤ァ閭ス莨伜<E88EA8>**<EFBFBD>夂峩謗・隹<EFBFBD>畑蜃ス謨ー<EFBFBD>碁∩蜈堺サ」遐∬ァ」譫仙シ€€<EFBFBD>御シ伜喧螟ァ謨ー謐ョ髮<EFBFBD><EFBFBD><EFBFBD>?
---
## 3. 蜉溯<E89C89><EFBFBD>
### 3.1 謖牙<E8AC96><EFBFBD><E68988>蛻?
| 蛻<><EFBFBD> | 蜉溯<E89C89> | 莨伜<E88EA8>郤?| 蠑€蜿醍憾諤?|
|------|------|--------|---------|
| **譬キ譛ャ遲幃€?* | 鬮倡コァ遲幃€牙勣 | P0 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>+荳コ遨コ/荳堺クコ遨コ譚。莉カ<E88E89>
| **蜿倬㍼霓ャ謐「** | 謨ー蛟シ譏<EFBDBC><EFBFBD>シ磯㍾郛也<E9839B><E4B99F>シ榎 P0 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>+NA螟<41>炊騾蛾。ケ<EFBDA1>
| | 逕滓<E98095><EFBFBD>アサ蜿倬㍼<E580AC><EFBFBD>邂ア<E98282>榎 P0 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>+NA螟<41>炊騾蛾。ケ<EFBDA1>
| | 譚。莉カ逕滓<E98095>蛻?| P0 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>+荳コ遨コ/荳堺クコ遨コ譚。莉カ<E88E89>
| | 逕滓<E98095>譁ー蜿倬㍼<E580AC>郁ョ。邂怜<E98282><E6809C>榎 P1 | 笨?蟾イ螳梧<E89EB3><E6A2A7>域婿譯<E5A9BF><E8ADAF>壼ョ牙<EFBDAE>蛻怜錐譏<E98C90><EFBFBD>シ榎
| **謨ー謐ョ貂<EFBDAE>** | 郛コ螟ア蛟シ螟<EFBDBC><EFBFBD>亥唖髯、+蝪ォ陦・<E999A6>榎 P0 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>6遘咲ョ€蜊募。ォ陦?MICE<43>勲ICE蠕<45><EFBFBD>ッ包シ榎
| | 蜴サ驥<EFBDBB> | P1 | 竢ク<E7ABA2><EFBDB8> 蟾イ遘サ髯、<E9ABAF>育畑謌キ髴€豎ゑシ榎
| **謨ー謐ョ驥榊。<E6A68A>** | 髟ソ陦ィ竊貞ョス陦ィ<E999A6><EFBDA8>ivot<6F>榎 P1 | 笨?蟾イ螳梧<E89EB3><E6A2A7><EFBFBD>+菫晉蕗譛ェ騾牙<E9A8BE>+蜴溷ァ句<EFBDA7>鬘コ蠎擾シ榎
| **鬮倡コァ蜉溯<E89C89>** | 螟夐㍾謠定。・<EFBDA1><EFBDA5>ICE<43>榎 P0 | <20>圦 蟾イ髮<EFBDB2><E9ABAE>蛻ー郛コ螟ア蛟シ螟<EFBDBC><EFBFBD>亥セ<E4BAA5><EFBFBD>ッ包シ榎
**莨伜<E88EA8>郤ァ隸エ譏?*<2A>?- **P0**<EFBFBD><EFBFBD>ク蠢<EFBFBD>粥閭ス<EFBFBD>訓hase 1-2 蠢<>。サ螳梧<E89EB3>
- **P1**<2A>夐㍾隕∝粥閭ス<E996AD>訓hase 3 螳梧<E89EB3>
- **P2**<2A>壼「槫シコ蜉溯<E89C89><E6BAAF>訓hase 4 蜿ッ騾?
### 3.2 荳榊シ€蜿醍噪蜉溯<E89C89>
| 蜉溯<E89C89> | 蜴溷屏 |
|------|------|
| 貂<>炊蛻怜錐 | 證ゆク榊シ€蜿托シ育畑謌キ髴€豎ゑシ<E38291> |
| 螳ス陦ィ竊帝柄陦?| 菴朱「鷹怙豎ゑシ梧嘯荳榊シ€蜿?|
| 謨ー謐ョ騾剰ァ<E589B0>。?| 雜<><E99B9C>MVP闌<50>峩 |
| 扈溯ョ。蛻<EFBDA1>梵 | 螻樔コ守サ溯ョ。蛻<EFBDA1>梵讓。蝮暦シ碁撼謨ー謐ョ貂<EFBDAE><EFBFBD> |
---
## 4. 蛻<>悄蠑€蜿題ョ。蛻?
### Phase 1<><EFBFBD>ク蠢<EFBDB8>粥閭ス<E996AD><EFBDBD>eek 1<>碁「<E7A281>ョ?螟ゥ<E89E9F><EFBFBD>?蟾イ螳梧<E89EB3>?
**逶ョ譬<EFBDAE>**<2A>夊ァ」蜀ウ譛€鬮倬「醍<EFBDA2>?荳ェ髴€豎?
| 蜉溯<E89C89> | 蟾・菴憺<E88FB4>?| 迥カ諤?| 鬪梧噺譬<E599BA>㊥ |
|------|--------|------|---------|
| 1. 鬮倡コァ遲幃€牙勣 | 2螟?| 笨?螳梧<E89EB3> | 謾ッ謖∝、壽擅莉カAND/OR<4F>悟ョ樊慮鬚<E685AE>ァ?|
| 2. 謨ー蛟シ譏<EFBDBC><EFBFBD>シ磯㍾郛也<E9839B><E4B99F>シ榎 1.5螟?| 笨?螳梧<E89EB3> | 閾ェ蜉ィ謠仙叙蜚ッ荳€蛟シ<E89B9F>梧髪謖∵音驥乗丐蟆<E4B890> |
| 3. 逕滓<E98095><EFBFBD>アサ蜿倬㍼<E580AC><EFBFBD>邂ア<E98282>榎 1.5螟?| 笨?螳梧<E89EB3> | 謾ッ謖∬<E8AC96>螳壻ケ牙<EFBDB9>轤ケ縲∫ュ牙ョス縲∫ュ蛾「?|
**驥檎ィ狗「?*<2A>壺怛 Week 1螳梧<E89EB3><E6A2A7>?荳ェ譬ク蠢<EFBDB8>粥閭ス蜿ッ逕ィ<E98095><EFBDA8>2025-12-08<30>?
---
### Phase 2<>壽擅莉カ逕滓<E98095>?貂<><EFBFBD><E7828A>eek 2<>碁「<E7A281>ョ?螟ゥ<E89E9F><EFBFBD>?蟾イ螳梧<E89EB3>?
**逶ョ譬<EFBDAE>**<2A>夊ァ」蜀ウ螟肴揩譚。莉カ騾サ霎鷹怙豎?
| 蜉溯<E89C89> | 蟾・菴憺<E88FB4>?| 迥カ諤?| 鬪梧噺譬<E599BA>㊥ |
|------|--------|------|---------|
| 4. 譚。莉カ逕滓<E98095>蛻?| 2螟?| 笨?螳梧<E89EB3> | 謾ッ謖∝、壽擅莉カIF-THEN隗<4E><E99A97> |
| 5. 蛻<>髯、郛コ螟ア蛟?| 1螟?| 笨?螳梧<E89EB3> | 謾ッ謖∵潔陦<E6BD94>/蛻怜唖髯、<E9ABAF>碁「<E7A281>ァ亥スア蜩<EFBDB1> |
| 6. 蜴サ驥<EFBDBB> | 1螟?| 竢ク<E7ABA2><EFBDB8> 證ゆク榊シ€蜿?| 逕ィ謌キ蜀ウ螳壽嘯荳榊シ€蜿?|
| 7. 隶。邂怜<E98282>?| 1螟?| 笨?螳梧<E89EB3> | 蜈ャ蠑乗桷蟒コ蝎ィ<E89D8E>梧髪謖∝クク逕ィ蜃ス謨ー |
| 8. Pivot<6F>磯柄竊貞ョス陦ィ<E999A6>榎 1螟?| 笨?螳梧<E89EB3> | 謾ッ謖∝、壼€シ蛻苓スャ謐「<E8AC90>瑚★蜷磯€蛾。ケ |
**驥檎ィ狗「?*<2A>壺怛 Week 2螳梧<E89EB3><E6A2A7>?荳ェ譬ク蠢<EFBDB8>粥閭ス蜿ッ逕ィ<E98095><EFBDA8>2025-12-08<30>?
---
### Phase 3<>壽焚謐ョ驥榊。?蝪ォ陦・<E999A6><EFBDA5>eek 3-4<>碁「<E7A281>ョ?螟ゥ<E89E9F><EFBDA9>
**逶ョ譬<EFBDAE>**<EFBFBD>壽髪謖∝、肴揩謨ー謐ョ霓ャ謐?
| 蜉溯<E89C89> | 蟾・菴憺<E88FB4>?| 雍溯エ」莠?| 鬪梧噺譬<E599BA>㊥ |
|------|--------|--------|---------|
| 8. 髟ソ陦ィ竊貞ョス陦ィ<E999A6><EFBDA8>ivot<6F>榎 2螟?| 蜑咲ォッ+蜷守ォッ | 謾ッ謖∝、壼€シ蛻苓スャ謐「 |
| 9. 逕滓<E98095>譁ー蜿倬㍼<E580AC>郁ョ。邂怜<E98282><E6809C>榎 2螟?| 蜑咲ォッ+蜷守ォッ | 蜈ャ蠑乗桷蟒コ蝎ィ<E89D8E>梧髪謖∝クク逕ィ蜃ス謨ー |
| 10. 郛コ螟ア蛟シ蝪ォ陦?| 1.5螟?| 蜑咲ォッ+蜷守ォッ | 謾ッ謖∝插蛟?荳ュ菴肴<E88FB4>?蛻<><EFBFBD>。ォ陦・ |
| 11. 螟夐㍾謠定。・<EFBDA1><EFBDA5>ICE<43>榎 1.5螟?| Python蠕ョ譛榊<E8AD9B>?| 髮<><E9ABAE>sklearn<72>梧髪謖∝渕遑€MICE |
| 12. 豬玖ッ<E78E96>+譁<>。」 | 1螟?| 蜈ィ蜻<EFBDA8> | 螳梧<E89EB3>逕ィ謌キ謇句<E8AC87> |
**驥檎ィ狗「?*<2A>啗eek 4扈捺據<E68DBA>梧園譛臼0/P1蜉溯<E89C89>螳梧<E89EB3>
---
### Phase 4<>壻シ伜<EFBDBC>?蠅槫シコ<EFBDBC><EFBDBA>eek 5+<2B>梧戟扈ュ霑ュ莉」<E88E89><EFBDA3>
- 笨?諤ァ閭ス莨伜喧<E4BC9C>亥、ァ謨ー謐ョ髮?10荳<30>。鯉シ?- 笨?謇ケ驥乗桃菴懶シ域音驥城㍾郛也<E9839B>€∵音驥丞唖髯、蛻礼ュ会シ<E4BC9A>
- 笨?謫堺ス懷紙蜿イ<E89CBF>域衍逵?蝗樣€€<C280>彰謫堺ス懶シ?- 笨?菫晏ュ倅クコ讓。譚ソ<E8AD9A>亥クク逕ィ謫堺ス應ソ晏ュ倅クコ蠢ォ謐キ譁ケ蠑擾シ<E693BE>
- 笨?謨ー謐ョ鬪瑚ッ<E7919A>シ郁<EFBDBC>蜉ィ譽€譟・謨ー謐ョ雍ィ驥擾シ<E693BE>
---
## 5. 謚€譛ッ譫カ譫?
### 5.1 笨?謨エ菴捺楔譫<E6A594>シ磯「<E7A3AF><EFBDA2>蜃ス謨ー譁ケ譯茨シ<E88CA8>
**譫カ譫<EFBDB6><E8ADAB><EFBFBD>**<EFBFBD>壼粥閭ス謖蛾聴菴ソ逕?*鬚<><E9AC9A>Python蜃ス謨ー**<2A>€碁撼蜉ィ諤∫函謌蝉サ」遐<EFBDA3>シ檎。ョ菫晉ィウ螳壽€ァ蜥梧€ァ閭ス縲?
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 蜑咲ォッ (React + Ant Design) 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? 蟾・蜈キ譬冗サ<E58697>サ? 笏? 笏?笏? 笏? 笏娯楳笏€笏€笏€笏?笏娯楳笏€笏€笏€笏?笏娯楳笏€笏€笏€笏?笏娯楳笏€笏€笏€笏? 笏? 笏?笏? 笏? 笏らュ幃€俄狽 笏る㍾郛問狽 笏ょ<E7AC8F>邂ア笏<EFBDB1> 笏よ擅莉カ笏<EFBDB6> ... 笏? 笏?笏? 笏? 笏披楳笏€笏€笏€笏?笏披楳笏€笏€笏€笏?笏披楳笏€笏€笏€笏?笏披楳笏€笏€笏€笏? 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? 驟咲スョ蟇ケ隸晄。<E69984>シ亥推蜉溯<E89C89>迢ャ遶具シ<E585B7> 笏? 笏?笏? 笏? - 蜿よ焚霎灘<E99C8E> 笏? 笏?笏? 笏? - 螳樊慮鬚<E685AE><EFBFBD> 笏? 笏?笏? 笏? - 謇ァ陦梧潔髓ョ 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?HTTP POST
竊?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 蜷守ォッ (Node.js + Fastify) 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? QuickActionController 笏? 笏?笏? 笏? - 謗・謾カ蜉溯<E89C89>謖蛾聴隸キ豎<EFBDB7> 笏? 笏?笏? 笏? - 鬪瑚ッ∝盾謨ー 笏? 笏?笏? 笏? - 隹<>畑QuickActionService 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? 笨?QuickActionService (譁? 笏? 笏?笏? 笏? - executeFilter() 隹<>畑鬚<E79591><E9AC9A>蜃ス謨ーAPI 笏? 笏?笏? 笏? - executeRecode() 隹<>畑鬚<E79591><E9AC9A>蜃ス謨ーAPI 笏? 笏?笏? 笏? - executeBinning() 隹<>畑鬚<E79591><E9AC9A>蜃ス謨ーAPI 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?HTTP POST /api/operations/xxx
竊?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? Python蠕ョ譛榊<E8AD9B>?(FastAPI) 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? 笨?operations/ (鬚<><E9AC9A>蜃ス謨ー讓。蝮<EFBDA1>) 笏? 笏?笏? 笏? - filter.py (遲幃€? 笏? 笏?笏? 笏? - recode.py (驥咲シ也<EFBDBC>? 笏? 笏?笏? 笏? - binning.py (蛻<>ョア) 笏? 笏?笏? 笏? - conditional.py (譚。莉カ逕滓<E98095><E6BB93>悟セ<E6829F>€蜿? 笏? 笏?笏? 笏? - missing.py (郛コ螟ア蛟シ螟<EFBDBC><EFBFBD>悟セ<E6829F>€蜿? 笏? 笏?笏? 笏? 豈丈クェ蜃ス謨ー<E8ACA8>? 笏? 笏?笏? 笏? 笨?扈剰ソ<E589B0>黒蜈<E9BB92>オ玖ッ<E78E96> 笏? 笏?笏? 笏? 笨?譛牙ョ梧紛邀サ蝙区ウィ隗? 笏? 笏?笏? 笏? 笨?譛芽ッヲ扈<EFBDA6>枚譯? 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏? 笨?API遶ッ轤ケ (譁? 笏? 笏?笏? 笏? POST /api/operations/filter 笏? 笏?笏? 笏? POST /api/operations/recode 笏? 笏?笏? 笏? POST /api/operations/binning 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
**笨?莨伜漢**<2A>?- 笨?**遞ウ螳壽€ァ鬮<EFBDA7>**<2A>夐「<E5A490><EFBDA2>蜃ス謨ー扈剰ソ<E589B0>黒蜈<E9BB92>オ玖ッ包シ梧裏蟄礼ャヲ荳イ諡シ謗・鬟朱勦
- 笨?**諤ァ閭ス螂?*<2A>夂峩謗・隹<EFBDA5>畑蜃ス謨ー<E8ACA8>梧裏莉」遐∬ァ」譫仙シ€€
- 笨?**蜿ッ扈エ謚?*<2A>壻サ」遐<EFBDA3>寔荳ュ蝨ィPython萓ァ<E89093>御セソ莠惹シ伜喧
- 笨?**螳牙<E89EB3>**<2A>壽裏莉」遐∵ウィ蜈・鬟朱勦
**笶?蟾イ蠎溷シ?*<2A>?- ~~QuickActionCodeGenerator.ts~~ <20>亥キイ蛻<EFBDB2>髯、<E9ABAF>?- ~~蜉ィ諤∽サ」遐∫函謌先婿譯<E5A9BF>~ <20>亥キイ蠑<EFBDB2><EFBFBD>?
### 5.2 笨?API隶セ隶。<E99AB6>磯㍾譫<E38DBE><EFBFBD>?
#### Node.js蜷守ォッAPI<50>亥燕遶ッ隹<EFBDAF><EFBFBD><E79591>
```typescript
// 謇ァ陦悟ソォ騾滓桃菴?POST /api/v1/dc/tool-c/quick-action
Body: {
sessionId: string,
action: 'filter' | 'recode' | 'binning' | 'conditional' | ...,
params: {
// 蜷<>粥閭ス迚ケ螳壼盾謨? }
}
Response: {
success: boolean,
data: {
newDataPreview: Array<Object>, // 蜑?0陦碁「<E7A281>ァ? affectedRows: number, // 蠖ア蜩咲噪陦梧<E999A6>? message: string, // 謫堺ス懆ッエ譏<EFBDB4>
executionTime: number, // Python謇ァ陦梧慮髣エ<E9ABA3>育ァ抵シ? output: string // Python謇灘魂霎灘<E99C8E>
}
}
// 鬚<>ァ域桃菴懃サ捺棡<E68DBA>井ク榊ョ樣刔謇ァ陦鯉シ?POST /api/v1/dc/tool-c/quick-action/preview
Body: { 蜷御ク<E5BEA1> }
Response: {
success: boolean,
data: {
preview: Array<Object>, // 蜑?0陦碁「<E7A281>ァ? estimatedChange: string, // "蟆<>唖髯?3陦? / "蟆<>眠蠅?蛻?
originalRows: number,
newRows: number
}
}
```
#### 笨?Python蠕ョ譛榊苅API<50>亥錘遶ッ隹<EFBDAF><EFBFBD>梧眠蠅橸シ?
**豕ィ諢<EFBDA8>**<2A>壻サ・荳偽RL莉<4C>クコ遉コ萓具シ悟ョ樣刔莉」遐∽クュ菴ソ逕ィ邇ッ蠅<EFBDAF>序驥<E5BA8F> `EXTRACTION_SERVICE_URL` 驟咲スョ縲?
```python
# 鬮倡コァ遲幃€会シ育、コ萓偽RL<52>?POST http://localhost:8000/api/operations/filter
Body: {
"data": [{"蟷エ鮴<EFBFBD>": 25, "諤ァ蛻ォ": "逕?}, ...],
"conditions": [
{"column": "蟷エ鮴<EFBFBD>", "operator": ">", "value": 30},
{"column": "諤ァ蛻ォ", "operator": "=", "value": "逕?}
],
"logic": "and" # or "or"
}
Response: {
"success": true,
"result_data": [...], # 遲幃€牙錘逧<E98C98>焚謐? "output": "蜴溷ァ区焚謐ョ: 100 陦圭n遲幃€牙錘: 30 陦?..",
"execution_time": 0.023,
"result_shape": [30, 5]
}
# 謨ー蛟シ譏<EFBDBC><EFBFBD>シ磯㍾郛也<E9839B><E4B99F><EFBFBD>
POST http://localhost:8000/api/operations/recode
Body: {
"data": [{"諤ァ蛻ォ": "逕?}, {"諤ァ蛻ォ": "?}, ...],
"column": "諤ァ蛻ォ",
"mapping": {"逕?: 1, "?: 2},
"create_new_column": true,
"new_column_name": "諤ァ蛻ォ_郛也<EFBFBD><EFBFBD>"
}
Response: {
"success": true,
"result_data": [...],
"output": "<EFBFBD><EFBFBD>ョ梧<EFBFBD>: 96 荳ェ蛟シ謌仙粥譏<E7B2A5>蟆Ыn譏<6E><EFBFBD><E89F86>蜉溽<E89C89>? 100.0%",
"execution_time": 0.015,
"result_shape": [96, 6]
}
# 逕滓<E98095><EFBFBD>アサ蜿倬㍼<E580AC><EFBFBD>邂ア<E98282><EFBDB1>
POST http://localhost:8000/api/operations/binning
Body: {
"data": [{"蟷エ鮴<EFBFBD>": 25}, {"蟷エ鮴<EFBFBD>": 35}, ...],
"column": "蟷エ鮴<EFBFBD>",
"method": "custom", # or "equal_width", "equal_freq"
"new_column_name": "蟷エ鮴<EFBFBD><EFBFBD><EFBFBD>",
"bins": [18, 60], # 閾ェ螳壻ケ牙<EFBDB9>轤? "labels": ["髱貞ー大ケ?, "謌仙ケエ", "閠∝ケエ"]
}
Response: {
"success": true,
"result_data": [...],
"output": "<EFBFBD>ョア扈捺棡蛻<EFBFBD><EFBFBD>:\n 髱貞ー大ケ? 10 陦?(10.4%)\n 謌仙ケエ: 70 陦?(72.9%)...",
"execution_time": 0.018,
"result_shape": [96, 6]
}
```
### 5.3 笨?鬚<><E9AC9A>蜃ス謨ー譛榊苅隶セ隶。<E99AB6>磯㍾譫<E38DBE><EFBFBD>?
#### Node.js蜷守ォッ譛榊苅
```typescript
// backend/src/modules/dc/tool-c/services/QuickActionService.ts
export class QuickActionService {
// 隹<>畑Python蠕ョ譛榊苅逧<E88B85><EFBFBD><EFBDA2>蜃ス謨ーAPI
async executeFilter(data: any[], params: FilterParams): Promise<OperationResult> {
return axios.post(`${PYTHON_SERVICE_URL}/api/operations/filter`, {
data,
conditions: params.conditions,
logic: params.logic,
});
}
async executeRecode(data: any[], params: RecodeParams): Promise<OperationResult> {
return axios.post(`${PYTHON_SERVICE_URL}/api/operations/recode`, {
data,
column: params.column,
mapping: params.mapping,
create_new_column: params.createNewColumn,
new_column_name: params.newColumnName,
});
}
async executeBinning(data: any[], params: BinningParams): Promise<OperationResult> {
return axios.post(`${PYTHON_SERVICE_URL}/api/operations/binning`, {
data,
column: params.column,
method: params.method,
new_column_name: params.newColumnName,
bins: params.bins,
labels: params.labels,
num_bins: params.numBins,
});
}
}
```
#### Python鬚<6E><E9AC9A>蜃ス謨ー
```python
# extraction_service/operations/filter.py
def apply_filter(df: pd.DataFrame, conditions: List[Dict], logic: str) -> pd.DataFrame:
"""
蠎皮畑遲幃€画擅莉カ<E88E89>磯「<E7A3AF><EFBDA2>蜃ス謨ー<E8ACA8>檎サ剰ソ<E589B0><EFBDBF><EFBFBD>オ玖ッ包シ<E58C85>
Args:
df: 霎灘<E99C8E>謨ー謐ョ譯? conditions: 遲幃€画擅莉カ蛻苓。? logic: 'and' 謌?'or'
Returns:
遲幃€牙錘逧<E98C98>焚謐ョ譯<EFBDAE>
"""
# 逕滓<E98095><EFBFBD>クェ譚。莉カ逧<EFBDB6>ask
masks = []
for cond in conditions:
column = cond['column']
operator = cond['operator']
value = cond.get('value')
if operator == '=':
mask = df[column] == value
elif operator == '>':
mask = df[column] > value
# ... 蜈カ莉冶ソ千ョ礼ャ?
masks.append(mask)
# 扈<>粋譚。莉カ
if logic == 'and':
final_mask = pd.concat(masks, axis=1).all(axis=1)
else:
final_mask = pd.concat(masks, axis=1).any(axis=1)
return df[final_mask].copy()
# extraction_service/main.py
@app.post("/api/operations/filter")
async def operation_filter(request: FilterRequest):
"""<EFBFBD>畑鬚<EFBFBD><EFBFBD>蜃ス謨ー"""
df = pd.DataFrame(request.data)
result_df = apply_filter(df, request.conditions, request.logic)
return JSONResponse(content={
"success": True,
"result_data": result_df.to_dict('records'),
"execution_time": execution_time,
...
})
```
**笨?莨伜漢**<EFBFBD>?- 鬚<><E9AC9A>蜃ス謨ー扈剰ソ<E589B0>黒蜈<E9BB92>オ玖ッ包シ檎ィウ螳壼庄髱?- 譌<>蟄礼ャヲ荳イ諡シ謗・<E8AC97>梧裏莉」遐∵ウィ蜈・鬟朱勦
- 逶エ謗・隹<EFBDA5>畑蜃ス謨ー<E8ACA8>€ァ閭ス莨倡ァ€
- 莉」遐<EFBDA3>寔荳ュ邂。逅<EFBDA1>シ梧<EFBDBC>莠守サエ謚、蜥御シ伜喧
**笶?蟾イ蠎溷シ?*<2A>?- ~~QuickActionCodeGenerator.ts~~ <20>亥キイ蛻<EFBDB2>髯、<E9ABAF>御ク榊<EFBDB8>菴ソ逕ィ蜉ィ諤∽サ」遐∫函謌撰シ<E692B0>
### 5.4 邇ッ蠅<EFBDAF>序驥城<E9A9A5>鄂ョ
**驥崎ヲ<E5B48E>**<EFBFBD>壻サ」遐∽クュ菴ソ逕ィ邇ッ蠅<EFBFBD>序驥城<EFBFBD>鄂ョPython蠕ョ譛榊苅蝨ー蝮€<EFBFBD>?*荳堺スソ逕ィ遑ャ郛也<E9839B><E4B99F>**縲?
#### Node.js蜷守ォッ驟咲スョ
蝨?`backend/.env` 荳ュ驟咲スョ<EFBDBD><EFBDAE>
```bash
# Python蠕ョ譛榊苅蝨ー蝮€<E89DAE>亥ソ<E4BAA5><EFBFBD>?EXTRACTION_SERVICE_URL=http://localhost:8000
# 逕滉コァ邇ッ蠅<EFBDAF>、コ萓<EFBDBA>
# EXTRACTION_SERVICE_URL=http://python-service:8000
# EXTRACTION_SERVICE_URL=https://api.yourdomain.com/python
```
#### 莉」遐∝ョ樒鴫
```typescript
// backend/src/modules/dc/tool-c/services/QuickActionService.ts
const PYTHON_SERVICE_URL = process.env.EXTRACTION_SERVICE_URL || 'http://localhost:8000';
// 隹<>畑譌カ菴ソ逕ィ邇ッ蠅<EFBDAF>序驥?await axios.post(`${PYTHON_SERVICE_URL}/api/operations/filter`, {...});
```
**笨?莨伜漢**<EFBFBD>?- 蠑€蜿醍識蠅<E8AD98>シ壻スソ逕ィ `localhost:8000`
- 逕滉コァ邇ッ蠅<EFBDAF>シ壻スソ逕ィ蜀<EFBDA8>ス大慍蝮€謌門沺蜷?- 螳ケ蝎ィ蛹夜Κ鄂イ<E98482>壻スソ逕ィ譛榊苅蜷搾シ亥ヲ?`http://python-service:8000`<EFBFBD>?- 隨ヲ蜷井コ大次逕溷シ€蜿題ァ<E9A18C><EFBDA7>?
---
## 6. 隸ヲ扈<EFBDA6>ョセ隶。
### 6.1 鬮倡コァ遲幃€牙勣
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 鬮倡コァ遲幃€? 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏絶狽
笏? 笏?[蛻怜錐 笆シ] [譚。莉カ 笆シ] [蛟シ_________] 笏や狽
笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏倪狽
笏? [荳?笆シ] 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏絶狽
笏? 笏?[蛻怜錐 笆シ] [譚。莉カ 笆シ] [蛟シ_________] 笏や狽
笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏倪狽
笏? [+ 豺サ蜉<EFBDBB>譚。莉カ] 笏?笏? 笏?笏? 鬚<>ァ茨シ壼ー<E5A3BC>ソ晉蕗 87 陦鯉シ亥<EFBDBC>?00陦鯉シ<E9AF89> 笏?笏? 笏?笏? [蜿匁カ<E58C81> [鬚<><EFBFBD> [蠎皮畑] 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 譚。莉カ霑千ョ礼ャ?
- 謨ー蛟シ蛻暦シ啻=`, `竕<>`, `>`, `<`, `竕・`, `竕、`
- 譁<>悽蛻暦シ啻遲我コ餐, `荳咲ュ我コ餐, `蛹<>性`, `荳榊桁蜷ォ`, `莉?..蠑€螟エ`, `莉?..扈灘ーセ`
- 騾夂畑<E5A482>啻荳コ遨コ`, `荳堺クコ遨コ`
#### 逕滓<E98095>莉」遐∫、コ萓<EFBDBA>
```python
# 蜊墓擅莉?df = df[df['蟷エ鮴<EFBDB4>'] >= 18]
# 螟壽擅莉?AND
df = df[(df['蟷エ鮴<EFBDB4>'] >= 18) & (df['諤ァ蛻ォ'] == '逕?)]
# 螟壽擅莉?OR
df = df[(df['蟷エ鮴<EFBDB4>'] >= 60) | (df['BMI'] >= 28)]
# 蛹<>
df = df[df['隸頑妙'].str.contains('邉門ーソ逞?, na=False)]
# 荳堺クコ遨?df = df[df['BMI'].notna()]
```
---
### 6.2 謨ー蛟シ譏<EFBDBC><EFBFBD>シ磯㍾郛也<E9839B><E4B99F><EFBFBD>
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 蜿倬㍼驥咲シ也<EFBDBC>? 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 騾画叫蛻暦シ喙遐皮ゥカ荳ュ蠢<EFBDAD> 笆シ] 笏?笏? 笏?笏? 閾ェ蜉ィ譽€豬句芦 3 荳ェ蜚ッ荳€蛟シ<E89B9F><EFBDBC> 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?蜴溷€? 笏?譁ー蛟? 笏?笏?笏? 笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏シ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?鮟鷹セ呎ア滉クュ蛹サ闕ッ... 笏?[1______] 笏?笏?笏? 笏?螻ア荳應クュ蛹サ闕?.. 笏?[2______] 笏?笏?笏? 笏?蟷ソ蟾樔クュ蛹サ闕?.. 笏?[3______] 笏?笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?笏? 笘托ク<E68998> 蛻帛サコ譁ー蛻暦シ域耳闕撰シ<E692B0> 笏?笏? 譁ー蛻怜錐<E6809C>喙遐皮ゥカ荳ュ蠢ダ郛也<E9839B>______] 笏?笏? 笏?笏? [蜿匁カ<E58C81> [鬚<><EFBFBD> [謇ァ陦珪 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 逕滓<E98095>莉」遐∫、コ萓<EFBDBA>
```python
# 蛻帛サコ譁ー蛻<EFBDB0>
mapping = {
'鮟鷹セ呎ア滉クュ蛹サ闕ッ螟ァ蟄ヲ髯<EFBDA6>ア樒ャャ莠悟現髯「': 1,
'螻ア荳應クュ蛹サ闕ッ螟ァ蟄ヲ髯<EFBDA6>ア槫現髯?: 2,
'蟷ソ蟾樔クュ蛹サ闕ッ螟ァ蟄ヲ髯<EFBDA6>ア樒ャャ荳€蛹サ髯「': 3
}
df['遐皮ゥカ荳ュ蠢ダ郛也<E9839B><E4B99F>'] = df['遐皮ゥカ荳ュ蠢<EFBDAD>'].map(mapping)
# 謌冶ヲ<E586B6>尠蜴溷<E89CB4>?df['遐皮ゥカ荳ュ蠢<EFBDAD>'] = df['遐皮ゥカ荳ュ蠢<EFBDAD>'].map(mapping)
```
---
### 6.3 逕滓<E98095><EFBFBD>アサ蜿倬㍼<E580AC><EFBFBD>邂ア<E98282><EFBDB1>
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 霑樒サュ蜿倬㍼蛻<E38DBC>ョア 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 騾画叫謨ー蛟シ蛻暦シ喙逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ 笆シ] 笏?笏? 笏?笏? 蛻<>ョア譁ケ蠑擾シ? 笏?笏? 笳?閾ェ螳壻ケ牙<EFBDB9>轤? 笏?笏? 蛻<><EFBFBD>喙10] [+] 笏?笏? 譬<>ュセ<EFBDAD>? 笏?笏? 竕?0: [證エ髴イ=1_____] 笏?笏? <10: [髱樊垓髴?0___] 笏?笏? 笏?笏? 笳?螟壽ョオ蛻<EFBDB5>せ 笏?笏? 蛻<><EFBFBD>喙0] [14] [30] [999] 笏?笏? 譬<>ュセ<EFBDAD>喙菴?0][荳?1][鬮?2] 笏?笏? 笏?笏? 譁ー蛻怜錐<E6809C>喙菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2>サЮ____] 笏?笏? 笏?笏? [蜿匁カ<E58C81> [鬚<>ァ亥<EFBDA7>蟶ゾ [謇ァ陦珪 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 逕滓<E98095>莉」遐∫、コ萓<EFBDBA>
```python
# 莠悟<E88EA0>邀サ<E98280>亥黒蛻<E9BB92><EFBFBD><E3819B>
df['菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2>サ?] = (df['逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ'] >= 10).astype(int)
# 螟壼<E89E9F>邀サ<E98280>亥、壼<EFBDA4>轤ケ<E8BDA4><EFBDB9>
df['證エ髴イ蠑コ蠎ヲ蛻<EFBDA6><EFBFBD>'] = pd.cut(
df['逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ'],
bins=[0, 14, 30, 999],
labels=[0, 1, 2],
right=False
)
```
---
### 6.4 譚。莉カ逕滓<E98095>蛻?箝先<E7AE9D>ク蠢<EFBDB8>粥閭?
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 譚。莉カ逕滓<E98095>譁ー蛻<EFBDB0> 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 譁ー蛻怜錐<E6809C>喙菴城劼證エ髴イ蜃コ髯「證エ髴イ諠<EFBDB2><E8ABA0><EFBFBD>サЮ___] 笏?笏? 笏?笏? 隗<><E99A97><EFBFBD>域潔鬘コ蠎丞源驟搾シ会シ<E4BC9A> 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?隗<><E99A97>1 笏?笏?笏? 笏?IF [菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2><EFBFBD>名] [=笆シ] [1] 笏?笏?笏? 笏?[荳披名] 笏?笏?笏? 笏?IF [逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ笆シ] [>=笆シ][14] 笏?笏?笏? 笏?THEN 蛟シ荳コ<E88DB3>喙菴城劼證エ髴イ蜃コ髯「證エ髴イ____] 笏?笏?笏? 笏? [蛻<>髯、隗<EFBDA4><E99A97>]笏?笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? 笏?隗<><E99A97>2 笏?笏?笏? 笏?IF [菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2><EFBFBD>名] [=笆シ] [1] 笏?笏?笏? 笏?[荳披名] 笏?笏?笏? 笏?IF [逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ笆シ] [<笆シ] [14] 笏?笏?笏? 笏?THEN 蛟シ荳コ<E88DB3>喙菴城劼證エ髴イ蜃コ髯「髱樊垓髴イ__] 笏?笏?笏? 笏? [蛻<>髯、隗<EFBDA4><E99A97>]笏?笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏?笏? [+ 豺サ蜉<EFBDBB><EFBFBD><E99A97>] 笏?笏? 笏?笏? 蜈カ莉匁ュ蜀オ<E89C80><EFBDB5>LSE<53>会シ<E4BC9A> 笏?笏? 笳?逡咏ゥコ<EFBDA9><EFBDBA>one<6E>? 笏?笏? 笳?蝗コ螳壼€<C280>喙_______] 笏?笏? 笳?菴ソ逕ィ鮟倩ョ、蛟シ<E89B9F>喙0______] 笏?笏? 笏?笏? 鬚<>ァ茨シ壼ー<E5A3BC>函謌先眠蛻暦シ碁「<E7A281>ョ?7陦梧怏蛟? 笏?笏? 笏?笏? [蜿匁カ<E58C81> [鬚<>ァ亥<EFBDA7>?0陦珪 [謇ァ陦珪 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 謚€譛ッ螳樒<E89EB3>?
**蜑咲ォッ謨ー謐ョ扈捺桷**<2A>?```typescript
interface ConditionalRule {
conditions: Array<{
column: string,
operator: '=' | '!=' | '>' | '<' | '>=' | '<=',
value: string | number
}>,
logic: 'and' | 'or',
result: string | number
}
interface ConditionalParams {
newColumnName: string,
rules: ConditionalRule[],
elseValue: null | string | number
}
```
**逕滓<E98095>莉」遐∫、コ萓<EFBDBA>**<EFBFBD>?```python
def classify_exposure(row):
# 隗<><E99A97>1
if row['菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2>サ?] == 1 and row['逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ'] >= 14:
return '菴城劼證エ髴イ蜃コ髯「證エ髴イ'
# 隗<><E99A97>2
elif row['菴城劼謔」閠<EFBDA3>垓髴イ蛻<EFBDB2>サ?] == 1 and row['逹」閼蛾宙蛻コ謖∫サュ譌カ髣エ'] < 14:
return '菴城劼證エ髴イ蜃コ髯「髱樊垓髴?
# ELSE
else:
return None
df['菴城劼證エ髴イ蜃コ髯「證エ髴イ諠<EFBDB2><E8ABA0><EFBFBD><EFBFBD>'] = df.apply(classify_exposure, axis=1)
```
---
### 6.5 髟ソ陦ィ竊貞ョス陦ィ<E999A6><EFBDA8>ivot<6F>?
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 髟ソ陦ィ霓ャ螳ス陦ィ<E999A6><EFBDA8>ivot<6F>? 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 邏「蠑募<E8A091><E58B9F>亥髪荳€<C280><EFBFBD>シ会シ<E4BC9A> 笏?笏? [Record ID 笆シ] 笏?笏? 笏?笏? 騾剰ァ<E589B0><EFBDA7><EFBFBD>亥序謌仙<E8AC8C>蜷搾シ会シ<E4BC9A> 笏?笏? [Event Name 笆シ] 笏?笏? 譽€豬句芦逧<E88AA6>€<C280><EFBDBC> 笏?笏? 窶?遲幃€牙所蝓コ郤ソ 笏?笏? 窶?髫剰ョソ<EFBDAE>?蜻ィ<E89CBB><EFBDA8> 笏?笏? 窶?髫剰ョソ<EFBDAE>?荳ェ譛茨シ? 笏?笏? 笏?笏? 蛟シ蛻暦シ郁ヲ∬スャ鄂ョ逧<EFBDAE>焚謐ョ<E8AC90>会シ? 笏?笏? 笘托ク<E68998> FMA諤サ蠕怜<E8A095>? 笏?笏? 笘托ク<E68998> FMA蛻<41>コァ(1-5) 笏?笏? 笘托ク<E68998> ADL諤サ蛻<EFBDBB> 笏?笏? 笘托ク<E68998> NLR 笏?笏? 笘托ク<E68998> PLR 笏?笏? [ ] ...<2E>€画叫蜈カ莉門<E88E89><E99680><EFBFBD> 笏?笏? 笏?笏? 驥榊、榊€シ螟<EFBDBC><EFBFBD><E7828A> 笏?笏? 笳?蜿也ャャ荳€荳? 笳?蜿匁怙蜷惹ク€荳? 笏?笏? 笳?豎ょケウ蝮<EFBDB3>€? 笳?豎ょ柱 笏?笏? 笏?笏? [蜿匁カ<E58C81> [鬚<>ァ育サ捺桷] [謇ァ陦珪 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 逕滓<E98095>莉」遐∫、コ萓<EFBDBA>
```python
# Pivot霓ャ謐「
df_pivot = df.pivot_table(
index='Record ID',
columns='Event Name',
values=['FMA諤サ蠕怜<E8A095>?, 'FMA蛻<41>コァ(1-5)', 'ADL諤サ蛻<EFBDBB>', 'NLR', 'PLR'],
aggfunc='first'
)
# 螻募ケウ螟夂コァ蛻怜錐
df_pivot.columns = ['_'.join(col).strip() for col in df_pivot.columns.values]
df_pivot = df_pivot.reset_index()
# 遉コ萓具シ哥MA諤サ蠕怜<E8A095>_遲幃€牙所蝓コ郤ソ, FMA諤サ蠕怜<E8A095>_髫剰ョソ(2蜻?
```
---
### 6.6 螟夐㍾謠定。・<EFBDA1><EFBDA5>ICE<43>?
#### UI隶セ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 螟夐㍾謠定。・<EFBDA1><EFBDA5>ICE<43>? 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 笞<><E7AC9E><EFBFBD> 鬮倡コァ扈溯ョ。蜉溯<E89C89><E6BAAF>碁怙隹ィ諷惹スソ逕ィ 笏?笏? 笏?笏? 騾画叫髴€隕∵薯陦・逧<EFBDA5><E980A7><EFBFBD><EFBFBD> 笏?笏? 笘托ク<E68998> 蟷エ鮴<EFBDB4> 笏?笏? 笘托ク<E68998> BMI 笏?笏? 笘托ク<E68998> 陦€邉? 笏?笏? [ ] 陦€蜴? 笏?笏? [ ] ... 笏?笏? 笏?笏? 蜿よ焚隶セ鄂ョ<E98482>? 笏?笏? 霑ュ莉」谺。謨ー<E8ACA8>喙10____]<5D>域耳闕?-20<32>? 笏?笏? 髫乗惻遘榊ュ撰シ喙42____]<5D>亥庄驥榊、咲サ捺棡<E68DBA>? 笏?笏? 笏?笏? 鬚<>ョ。謠定。・<EFBDA1>?2荳ェ郛コ螟ア蛟? 笏?笏? 笏?笏? 笞<><E7AC9E><EFBFBD> 豕ィ諢擾シ? 笏?笏? 窶?MICE蛛<45>ョセ謨ー謐ョMAR<41>磯囂譛コ郛コ螟ア<E89E9F><EFBDB1> 笏?笏? 窶?謠定。・譌カ髣エ霎<EFBDB4><EFBFBD>亥、ァ謨ー謐ョ髮?1蛻<31><EFBFBD>? 笏?笏? 窶?蟒コ隶ョ蜈亥、<E4BAA5>サス蜴滓焚謐ョ 笏?笏? 笏?笏? [蜿匁カ<E58C81> [謇ァ陦珪 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
#### 謚€譛ッ螳樒<E89EB3>?
**萓晁オ門コ?*<2A>夐怙蝨ィPython蠕ョ譛榊苅荳ュ螳芽」<E88ABD> `scikit-learn`
```python
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
# 騾画叫髴€隕∵薯陦・逧<EFBDA5><E980A7>?cols_to_impute = ['蟷エ鮴<EFBDB4>', 'BMI', '陦€邉?]
df_subset = df[cols_to_impute]
# MICE謠定。・
imputer = IterativeImputer(
max_iter=10,
random_state=42,
verbose=0
)
df[cols_to_impute] = imputer.fit_transform(df_subset)
print(f'謠定。・螳梧<E89EB3><E6A2A7>悟黄菴咏シコ螟ア蛟? {df[cols_to_impute].isna().sum().sum()}')
```
---
## 7. 鬪梧噺譬<E599BA>
### 7.1 蜉溯<E89C89>鬪梧噺
豈丈クェ蜉溯<EFBFBD>謖蛾聴髴€騾夊ソ<EFBFBD>サ・荳区オ玖ッ包シ?
#### 蝓コ遑€蜉溯<E89C89>豬玖ッ<E78E96>
| 豬玖ッ暮。?| 鬪梧噺譬<E599BA>㊥ |
|-------|---------|
| UI譏セ遉コ | 謖蛾聴縲∝ッケ隸晄。<E69984>ュ」遑ョ貂イ譟難シ梧裏蟶<E8A38F>€髞呵ッッ |
| 蜿よ焚鬪瑚ッ<E7919A> | 髞呵ッッ霎灘<E99C8E>譛牙暑螂ス謠千、?|
| 鬚<>ァ亥粥閭ス | 鬚<>ァ育サ捺棡蜃<E6A3A1>。ョ<EFBDA1>€ァ閭ス<2遘?|
| 謇ァ陦悟粥閭ス | 莉」遐∵ュ」遑ョ謇ァ陦鯉シ檎サ捺棡隨ヲ蜷磯「<E7A3AF><EFBDA2>?|
| 髞呵ッッ螟<EFBDAF>炊 | 蠑ょクク譛画<E8AD9B>遑ョ謠千、コ<EFBDA4>御ク榊エゥ貅?|
#### 謨ー謐ョ蜃<EFBDAE>。ョ諤ァ豬玖ッ?
| 豬玖ッ暮。?| 鬪梧噺譬<E599BA>㊥ |
|-------|---------|
| 蟆乗焚謐ョ髮<EFBDAE> | <1000陦鯉シ檎サ捺棡100%蜃<>。ョ |
| 荳ュ謨ー謐ョ髮<EFBDAE> | 1000-10000陦鯉シ梧€ァ閭ス<5遘?|
| 螟ァ謨ー謐ョ髮<EFBDAE> | 10000-50000陦鯉シ梧€ァ閭ス<30遘?|
| 霎ケ逡梧ュ蜀オ | 蜈ィ遨コ蛻励€<C280>0蛻励€∝黒陦檎ュ画ュ」遑ョ螟<EFBDAE>炊 |
#### 逕ィ謌キ菴馴ェ梧オ玖ッ<E78E96>
| 豬玖ッ暮。?| 鬪梧噺譬<E599BA>㊥ |
|-------|---------|
| 蟄ヲ荵<EFBDA6>謌先悽 | 譁ー逕ィ謌?蛻<>帖蜀<E5B896>ュヲ莨壻スソ逕?|
| 謫堺ス懈譜邇<E8AD9C> | 豈尿I蟇ケ隸晏ソ?-5蛟?|
| 髞呵ッッ諱「螟<EFBDA2> | 謾ッ謖∵彫髞€謌匁署萓?蛻帛サコ蜑ッ譛ャ"騾蛾。ケ |
### 7.2 諤ァ閭ス蝓コ蜃<EFBDBA>
| 謫堺ス<E5A0BA> | 謨ー謐ョ驥?| 逶ョ譬<EFBDAE>€ァ閭ス |
|------|-------|---------|
| 鬮倡コァ遲幃€?| 10荳<30><EFBFBD> | <2遘?|
| 謨ー蛟シ譏<EFBDBC>蟆?| 10荳<30><EFBFBD> | <3遘?|
| 蛻<>ョア | 10荳<30><EFBFBD> | <3遘?|
| 譚。莉カ逕滓<E98095>蛻?| 10荳<30><EFBFBD> | <5遘?|
| Pivot霓ャ謐「 | 5000陦?| <10遘?|
| MICE謠定。・ | 5000陦?| <60遘?|
### 7.3 莉」遐∬エィ驥乗<E9A9A5><E4B997>
- 笨?莉」遐∬ヲ<E288AC>尠邇?>80%
- 笨?ESLint/TSLint 0髞呵ッッ
- 笨?謇€譛陰PI譛牙ョ梧紛逧УypeScript邀サ蝙句ョ壻ケ<E5A3BB>
- 笨?蜈ウ髞ョ蜃ス謨ー譛雨SDoc豕ィ驥<EFBDA8>
- 笨?逕ィ謌キ謫堺ス懈怏譌・蠢苓ョー蠖?
---
## 8. 鬟朱勦隸<E58BA6>シー
### 8.1 謚€譛ッ鬟朱<E9AC9F>?
| 鬟朱勦 | 蠖ア蜩<EFBDB1> | 讎ら紫 | 蠎泌ッケ謗ェ譁ス |
|------|------|------|---------|
| Python蠎謎セ晁オ夜琉鬚?| 鬮?| 荳?| 謠仙燕鬪瑚ッ∝コ灘<EFBDBA>螳ケ諤?|
| 螟ァ謨ー謐ョ髮<EFBDAE>€ァ閭ス | 荳?| 鬮?| 蛻<>音螟<E99FB3>炊+霑帛コヲ譚?|
| 莉」遐∫函謌宣漠隸ッ | 鬮?| 菴?| 荳・譬シ蜊募<E89C8A>豬玖ッ<E78E96> |
| 豬剰ァ亥勣蜈シ螳ケ諤?| 菴?| 菴?| 蜿ェ謾ッ謖∫鴫莉」豬剰ァ亥勣 |
### 8.2 逕ィ謌キ菴馴ェ碁」朱勦
| 鬟朱勦 | 蠖ア蜩<EFBDB1> | 讎ら紫 | 蠎泌ッケ謗ェ譁ス |
|------|------|------|---------|
| 蜉溯<E89C89><EFBFBD>コ主、肴揩 | 荳?| 荳?| 謠蝉セ幄ァ<E5B984>「第蕗遞<E89597> |
| 荳拶I蜉溯<E89C89>蜀イ遯<EFBDB2> | 菴?| 菴?| 譏守。ョ菴ソ逕ィ蝨コ譎ッ |
| 譛滓悍霑<E6828D><EFBFBD> | 荳?| 荳?| 譏守。ョ蜉溯<E89C89>霎ケ逡<EFBDB9> |
---
## 9. 蜷守サュ隗<EFBDAD><E99A97>
### Phase 5<>壽匱閭ス蛹門「槫シコ<EFBDBC>?-3荳ェ譛亥錘<E4BAA5><E98C98>
1. **謫堺ス懈耳闕<E880B3>**<EFBFBD><EFBFBD>ケ謐ョ謨ー謐ョ迚ケ蠕∵耳闕仙粋騾ら噪謫堺ス<EFBFBD>
2. **閾ェ蜉ィ隸頑妙**<EFBFBD>壽」€豬区焚謐ョ雍ィ驥城琉鬚假シ育シコ螟ア縲∝シょクク縲<EFBFBD>㍾螟搾シ<EFBFBD>
3. **謇ケ驥乗桃菴<E6A183>**<EFBFBD>壻ク€谺。諤ァ蠎皮畑螟壻クェ謫堺ス?4. **謫堺ス懈ィ。譚ソ**<EFBFBD>壻ソ晏ュ伜クク逕ィ謫堺ス懷コ丞<EFBFBD>?
### Phase 6<>壼刻菴懷「槫シコ<EFBDBC><EFBDBA>3-6荳ェ譛亥錘<E4BAA5><E98C98>
1. **謫堺ス懷紙蜿イ**<EFBFBD>壽衍逵九€∝屓騾€縲∝<EFBFBD>莠ォ謫堺ス懷紙蜿?2. **蝗「髦滓ィ。譚ソ**<EFBFBD>壼屬髦溷<EFBFBD>莠ォ貂<EFBFBD>エ玲ィ。譚?3. **謨ー謐ョ迚域悽**<EFBFBD>壽髪謖∵焚謐ョ蠢ォ辣ァ蜥檎沿譛ャ邂。逅<EFBFBD>
---
## 10. 髯<><EFBFBD>
### 10.1 蜿り€<E3828A><EFBFBD><EFBDB5>?
- SPSS謨ー謐ョ貂<EFBDAE>エ怜粥閭ス
- Excel謨ー謐ョ騾剰ァ<E589B0>。?- Python Pandas譁<73>。」
- Ant Design扈<6E>サカ蠎?
### 10.2 譛ッ隸ュ陦?
| 譛ッ隸ュ | 隗」驥<EFBDA3> |
|------|------|
| 驥咲シ也<EFBDBC>?| 蟆<>€蛻礼噪蛟シ譏<EFBDBC><EFBFBD>クコ蜿ヲ荳€<C280>€?|
| 蛻<>ョア | 蟆<>ソ樒サュ謨ー蛟シ霓ャ荳コ遖サ謨」蛻<EFBDA3>ア?|
| Pivot | 髟ソ陦ィ霓ャ螳ス陦ィ逧<EFBDA8>焚謐ョ驥榊。第桃菴<E6A183> |
| MICE | 螟夐㍾謠定。・豕包シ悟、<E6829F>炊郛コ螟ア蛟シ逧<EFBDBC>サ溯ョ。譁ケ豕<EFBDB9> |
| MAR | Missing At Random<6F>碁囂譛コ郛コ螟?|
### 10.3 譖エ譁ー譌・蠢<EFBDA5>
| 迚域悽 | 譌・譛<EFBDA5> | 蜿俶峩蜀<E5B3A9>ョケ |
|------|------|---------|
| V1.0 | 2025-12-08 | 蛻晉沿<E69989>瑚ァ<E7919A><EFBDA7>Phase 1-4蜉溯<E89C89> |
| V1.1 | 2025-12-08 | 譫カ譫<EFBDB6>㍾譫<E38DBE>シ壽隼荳コ鬚<EFBDBA><E9AC9A>Python蜃ス謨ー |
| V1.2 | 2025-12-08 | Phase 1-2螳梧<E89EB3><E6A2A7>?荳ェ譬ク蠢<EFBDB8>粥閭ス荳顔コ?|
| V1.3 | 2025-12-10 | NA螟<41>炊莨伜喧<E4BC9C>?荳ェ蜉溯<E89C89>謾ッ謖∫ゥコ蛟シ螟<EFBDBC><EFBFBD>娜ivot莨伜喧<E4BC9C>壻ソ晉蕗譛ェ騾牙<E9A8BE>+蜴溷ァ句<EFBDA7>鬘コ蠎擾シ幄ョ。邂怜<E98282>譁ケ譯<EFBDB9>螳樊命<E6A88A>壼ョ牙<EFBDAE>蛻怜錐譏<E98C90><EFBFBD>シ婉X莨伜喧<E4BC9C><EFBFBD>螟エtooltip+鬚<>ァ域署遉コ蜿ッ蜈ウ髣?貊壼勘譚。莨伜<E88EA8>?|
| V1.4 | 2025-12-10 | 郛コ螟ア蛟シ蝪ォ陦・蜉溯<E89C89>€蜿托シ<E68998>6遘咲ョ€蜊募。ォ陦・<E999A6>亥插蛟?荳ュ菴肴<E88FB4>?莨玲焚/蝗コ螳壼€?蜑榊髄/蜷主髄<E4B8BB>?MICE螟夐㍾謠定。・<EFBDA1><EFBFBD>蜉ィ邊セ蠎ヲ譽€豬具シ帛<EFBDBC>邀サ蛻苓ッ<E88B93><EFBFBD>帛粥閭ス謖蛾聴隹<E881B4><EFBFBD>亥唖髯?蜴サ驥<EFBDBB>"蜥?螟夐㍾謠定。・"<22>?蛻<>髯、郛コ螟ア蛟?謾ケ荳コ"郛コ螟ア蛟シ螟<EFBDBC><E89E9F>?<3F>会シ帷憾諤<E686BE>シ壼シ€蜿大ョ梧<EFBDAE><E6A2A7>勲ICE逧ДataFrame shape髣ョ鬚伜セ<E4BC9C><EFBFBD>ッ?|
| V1.5 | 2025-12-10 | **UX莨伜喧驥榊、ァ謾ケ霑<EFBDB9>**<EFBFBD>壺蔵蛻<EFBFBD>髯、"蜑?0陦碁「<E7A281>ァ?謠千、コ譚。<E8AD9A>帚贈豺サ蜉<EFBDBB>陦悟捷蛻暦シ亥崋螳壼キヲ萓ァ<E89093><EFBFBD>濶イ閭梧勹<E6A2A7>会シ帚造蛻怜、エ遲幃€牙粥閭ス<E996AD><EFBDBD>xcel鬟取<E9AC9F><EFBFBD>靴ommunity迚域悽<E59F9F>御クュ譁<EFBDAD>悽蝨ー蛹厄シ梧仞遉コ蛟シ隶。謨ー<E8ACA8>会シ帚促蜈ィ驥乗焚謐ョ蜉<EFBDAE>霓ス荳手ソ泌屓<E6B38C>井ク榊<EFBDB8>髯仙宛50陦鯉シ檎ュ幃€臥イセ遑ョ<E98191>会シ帚側**貊壼勘譚。扈域栫菫ョ螟?*<2A>井ソョ謾ケMainLayout荳コ蝗コ螳夐ォ伜コヲ<EFBDBA>梧紛荳ェ鬘オ髱「譌<EFBDA2>貊壼勘譚。<E8AD9A>悟宵譛芽。ィ譬シ蜀<EFBDBC>Κ貊壼勘<E5A3BC>会シ帚則隶。邂怜<E98282>迚ケ谿雁ュ礼ャヲ菫ョ螟搾シ亥<EFBDBC>隗貞ュ礼ャヲ閾ェ蜉ィ霓ャ謐「+蛻怜悪蜷肴惻蛻カ<E89BBB>会シ帷憾諤<E686BE><EFBFBD>**Tool C謨エ菴灘ョ梧<EFBDAE>蠎?8%<25>檎畑謌キ菴馴ェ梧仞闡玲署蜊?* 笨?|
---
**譁<>。」扈捺據**