Files
AIclinicalresearch/docs/03-业务模块/DC-数据清洗整理/04-开发计划/工具C_缺失值处理功能开发计划.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

497 lines
28 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 - 郛コ螟ア蛟シ螟<EFBDBC>炊蜉溯<E89C89>€蜿題ョ。蛻?
## <20>搭 讎りソー
**逶ョ譬<EFBDAE>**<EFBFBD>壼ー<EFBFBD>鴫譛臥<EFBFBD>?蛻<>髯、郛コ螟ア蛟?蜉溯<E89C89><EFBFBD>コァ荳コ扈シ蜷育噪"郛コ螟ア蛟シ螟<EFBDBC><E89E9F>?蜉溯<E89C89><E6BAAF>悟桁諡ャ蛻<EFBDAC>髯、縲∝。ォ陦・縲<EFBDA5>ォ倡コァ蝪ォ陦・荳臥ァ咲ュ也払縲?
**隶セ隶。譁ケ譯<EFBDB9>**<EFBFBD>壽婿譯<EFBFBD> - 蜷亥ケカ蟇ケ隸晄。?+ Tab蛻<62>
**譬ク蠢<EFBDB8>次蛻<E6ACA1>**<EFBFBD>?- 笨?**蝪ォ陦・謫堺ス懷<EFBDBD>蟒コ譁ー蛻<EFBDB0>**<2A>井ソ晉蕗蜴溷ァ区焚謐ョ<E8AC90>御セソ莠主ッケ豈費シ?- 笨?**譁ー蛻礼エァ驍サ蜴溷<E89CB4>**<2A>域婿萓ソ逕ィ謌キ譟・逵句柱豈碑セ<E7A291>シ?- 笨?**MICE蜉溯<E89C89><EFBFBD>。サ螳樒鴫**<2A>亥現蟄ヲ遐皮ゥカ譬ク蠢<EFBDB8>怙豎ゑシ<E38291>
- 笨?**譌<>€謦、髞€蜉溯<E89C89>**<2A>亥次蟋区焚謐ョ譛ェ陲ォ菫ョ謾ケ<E8ACBE><EFBDB9>
---
## <20>識 蜉溯<E89C89>€豎?
### Phase 1<>壼ソ<E5A3BC><EFBFBD>粥閭ス<E996AD>域悽谺。蠑€蜿托シ<E68998>
#### Tab 1<>壼唖髯、郛コ螟ア蛟?笨?蟾イ譛<EFBDB2>
- 菫晉蕗邇ー譛牙粥閭ス
-<>髯、蛹<EFBDA4>性郛コ螟ア蛟シ逧<EFBDBC>。?- 蛻<>髯、郛コ螟ア邇<EFBDB1>ソ<EFBFBD>ォ倡噪蛻?
#### Tab 2<>壼。ォ陦・郛コ螟ア蛟?箝?譁ー蠅<EFBDB0>
1. **蝮<>€シ蝪ォ陦?*<2A><>ean Imputation<6F>? - 騾ら畑莠趣シ壽焚蛟シ蝙句序驥擾シ梧ュ」諤∝<E8ABA4>蟶? - 螳樒鴫<E6A892><EFBFBD>蟒コ譁ー蛻暦シ悟。ォ蜈<EFBDAB>插蛟?
2. **荳ュ菴肴焚蝪ォ陦?*<2A><>edian Imputation<6F>? - 騾ら畑莠趣シ壽焚蛟シ蝙句序驥擾シ悟¥諤∝<E8ABA4>蟶? - 螳樒鴫<E6A892><EFBFBD>蟒コ譁ー蛻暦シ悟。ォ蜈<EFBDAB>クュ菴肴<E88FB4>?
3. **莨玲焚蝪ォ陦・**<EFBFBD><EFBFBD>ode Imputation<6F>? - 騾ら畑莠趣シ壼<EFBDBC>邀サ蜿倬㍼縲∫ヲサ謨」蝙区焚蛟? - 螳樒鴫<E6A892><EFBFBD>蟒コ譁ー蛻暦シ悟。ォ蜈<EFBDAB>シ玲焚
4. **蝗コ螳壼€シ蝪ォ陦?*<2A><>onstant Imputation<6F>? - 騾ら畑莠趣シ壻ササ菴慕アサ蝙具シ檎畑謌キ謖<EFBDB7>ョ壼€? - 螳樒鴫<E6A892><EFBFBD>蟒コ譁ー蛻暦シ悟。ォ蜈<EFBDAB>欠螳壼€?
5. **蜑榊髄蝪ォ蜈<EFBDAB>**<EFBFBD><EFBFBD>orward Fill<6C>? - 騾ら畑莠趣シ壽慮髣エ蠎丞<E8A08E>謨ー謐ョ縲∵怏鬘コ蠎冗噪隗ょッ滓焚謐? - 螳樒鴫<E6A892>啻df[column].fillna(method='ffill')`<60>檎畑蜑堺ク€荳ェ髱樒シコ螟ア蛟シ蝪ォ蜈? - 遉コ萓具シ喙10, NaN, NaN, 20] 竊?[10, 10, 10, 20]
6. **蜷主髄蝪ォ蜈<EFBDAB>**<EFBFBD><EFBFBD>ackward Fill<6C>? - 騾ら畑莠趣シ壽慮髣エ蠎丞<E8A08E>謨ー謐ョ縲∵怏鬘コ蠎冗噪隗ょッ滓焚謐? - 螳樒鴫<E6A892>啻df[column].fillna(method='bfill')`<60>檎畑蜷惹ク€荳ェ髱樒シコ螟ア蛟シ蝪ォ蜈? - 遉コ萓具シ喙10, NaN, NaN, 20] 竊?[10, 20, 20, 20]
**豕ィ諢<EFBDA8>**<EFBFBD>壽園譛牙。ォ陦・譁ケ豕暮<EFBFBD>莨壼<EFBFBD>蟒コ譁ー蛻暦シ亥ヲ菴馴㍾_蝪ォ陦・`<60>会シ梧眠蛻礼エァ驍サ蜴溷<E89CB4><E6BAB7>御セソ莠主ッケ豈秘ェ瑚ッ√€?
#### Tab 3<>夐ォ倡コァ蝪ォ陦?箝?譁ー蠅<EFBDB0>
1. **MICE螟夐㍾謠定。・**<2A><>ultivariate Imputation by Chained Equations<6E>? - 騾ら畑莠趣シ夂シコ螟ア邇?%-30%<25>碁怙隕∬€<E288AC>剔蜿倬㍼髣エ蜈ウ邉? - 螳樒鴫<E6A892>壻スソ逕?`sklearn.impute.IterativeImputer`
### Phase 2<>壽悴譚・謇ゥ螻包シ域悽谺。荳榊シ€蜿托シ<E68998>
- 蛻<><EFBFBD>。ォ陦・<E999A6><EFBDA5>rouped Imputation<6F>?- 郤ソ諤ァ謠貞€<C280><EFBDBC>inear Interpolation<6F>?- KNN蝪ォ陦・<E999A6><EFBDA5>NN Imputation<6F>?- 扈<>粋蝪ォ陦・<E999A6><EFBFBD>ケ謐ョ譚。莉カ菴ソ逕ィ荳榊酔蝪ォ陦・譁ケ豕包シ<E58C85>
---
## <20>耳 UI隶セ隶。
### 1. 謖蛾聴驥榊多蜷?**蜴?*<2A>啻[蛻<>髯、郛コ螟ア蛟シ]`
**譁?*<2A>啻[郛コ螟ア蛟シ螟<EFBDBC>炊]`
### 2. 蟇ケ隸晄。<E69984>サ捺<EFBDBB>?
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 郛コ螟ア蛟シ螟<EFBDBC><E89E9F>? [X] 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?蛻<>髯、 笏?蝪ォ陦・ 笏?鬮倡コァ蝪ォ陦・ 笏? 竊?Ant Design Tabs 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 笏?笏? 縲慎ab蜀<62>ョケ蛹コ蝓溘€? 笏?笏? 笏?笏? 笏?笏? [蜿匁カ<E58C81> [謇ァ陦悟、<E6829F>炊] 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
### 3. Tab 2<>亥。ォ陦・<E999A6>芽ッヲ扈<EFBDA6>ョセ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 縲慎ab 2: 蝪ォ陦・郛コ螟ア蛟シ縲? 笏?笏? 笏?笏? 蜴溷ァ句<EFBDA7><E58FA5>喙菴馴㍾<E9A6B4><E38DBE>g<EFBFBD>俄名] 笏?笏? 笞<><E7AC9E><EFBFBD><>髪謖∝黒蛻怜。ォ陦? 笏?笏? 笏?笏? 譁ー蛻怜錐<E6809C>喙菴馴㍾_蝪ォ陦・ ] 竊?逕ィ謌キ蜿ッ菫ョ謾? 笏?笏? <20>庁 譁ー蛻怜ー<E6809C><EFBDB0>蟒コ蝨ィ蜴溷<E89CB4>譌∬セケ<EFBDBE>御セソ莠主ッケ豈? 笏?笏? 笏?笏? <20>投 郛コ螟ア蛟シ扈溯ョ。<EFBDAE><EFBDA1> 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?窶?蠖灘燕郛コ螟ア<E89E9F>?25荳ェ<E88DB3><EFBDAA>15.6%<25>? 笏? 笏?笏? 笏?窶?譛画譜蛟シ<E89B9F><EFBDBC>675荳ェ<E88DB3><EFBDAA>84.4%<25>? 笏? 笏?笏? 笏?窶?謨ー謐ョ邀サ蝙具シ壽焚蛟シ蝙<EFBDBC> 笏? 笏?笏? 笏?窶?譛画譜蛟シ闌<EFBDBC><EFBFBD><E5B3A9>45.2 - 98.5 kg 笏? 笏?笏? 笏?窶?譛画譜蛟シ蝮<EFBDBC>€<C280><EFBDBC>70.3 kg 笏? 笏?笏? 笏?窶?譛画譜蛟シ荳ュ菴肴焚<E882B4>?8.5 kg 笏? 笏?笏? 笏?窶?謗ィ闕先婿豕包シ壻クュ菴肴焚蝪ォ陦・<E999A6>域焚謐ョ蛛乗€<E4B997>シ俄ュ? 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?笏? 蝪ォ陦・譁ケ豕包シ? 笏?笏? 笞?蝮<>€シ蝪ォ陦・<E999A6>€ょ粋豁」諤∝<E8ABA4><EFBFBD>噪謨ー蛟シ蜿倬㍼<E580AC><E38DBC> 笏?笏? 笞?荳ュ菴肴焚蝪ォ陦・<E999A6>€ょ粋蛛乗€<C280><EFBFBD>噪謨ー蛟シ蜿倬㍼<E580AC>俄ュ? 笏?笏? 笞?莨玲焚蝪ォ陦・<E999A6>€ょ粋蛻<E7B28B>アサ蜿倬㍼謌也ヲサ謨」謨ー蛟シ<E89B9F><EFBDBC> 笏?笏? 笞?蝗コ螳壼€シ蝪ォ陦・<E999A6>喙_______] 竊?逕ィ謌キ霎灘<E99C8E> 笏?笏? 笞?蜑榊髄蝪ォ蜈<EFBDAB>シ育畑蜑堺ク€荳ェ蛟シ蝪ォ蜈<EFBDAB>シ碁€ょ粋譌カ髣エ蠎丞<E8A08E><E4B89E>? 笏?笏? 笞?蜷主髄蝪ォ蜈<EFBDAB>シ育畑蜷惹ク€荳ェ蛟シ蝪ォ蜈<EFBDAB>シ碁€ょ粋譌カ髣エ蠎丞<E8A08E><E4B89E>? 笏?笏? 笏?笏? <20>嶋 蝪ォ陦・鬚<EFBDA5>ァ茨シ? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?窶?蝪ォ陦・蛟シ<E89B9F><EFBDBC>68.5 kg 笏? 笏?笏? 笏?窶?蝪ォ陦・蜷主插蛟シ<E89B9F><EFBDBC>70.2 kg<6B>亥次75.3 kg<6B>? 笏? 笏?笏? 笏?窶?蝪ォ陦・蜷取<E89CB7><E58F96>㊥蟾ョ<E89FBE>?2.5 kg<6B>亥次10.8 kg<6B>? 笏? 笏?笏? 笏?窶?蟆<><E89F86>蟒コ譁ー蛻暦シ<E69AA6>"菴馴㍾_蝪ォ陦・" 笏? 笏?笏? 笏?窶?蜴溷<E89CB4>"菴馴㍾<E9A6B4><E38DBE>g<EFBFBD>?菫晄戟荳榊序 笨? 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?笏? 笨?莨伜漢<E4BC9C>壼次蟋区焚謐ョ菫晉蕗<E69989>悟庄髫乗慮蟇ケ豈秘ェ瑚ッ? 笏?笏? 笏?笏? [蜿匁カ<E58C81> [謇ァ陦悟。ォ陦・] 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
### 4. Tab 3<>磯ォ倡コァ蝪ォ陦・<E999A6>芽ッヲ扈<EFBDA6>ョセ隶。
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?笏? 縲慎ab 3: 鬮倡コァ蝪ォ陦・ - MICE螟夐㍾謠定。・縲鯛ュ<E9AF9B><>。サ螳樒鴫 笏?笏? 笏?笏? 箝?MICE螟夐㍾謠定。・ 笏?笏? <20><>ultivariate Imputation by Chained Equations<6E>? 笏?笏? 笏?笏? 騾画叫隕∝。ォ陦・逧<EFBDA5><E980A7><EFBFBD>亥庄螟夐€会シ会シ? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?笘?菴馴㍾<E9A6B4><E38DBE>g<EFBFBD>? 郛コ螟ア<E89E9F>?25<32>?5.6%<25>? 笏? 笏?笏? 笏?笘?謾カ郛ゥ蜴具シ<E585B7>mHg<48>? 郛コ螟ア<E89E9F>?2<>?0.3%<25>? 笏? 笏?笏? 笏?笘?BMI 郛コ螟ア<E89E9F>?<3F>?.4%<25>? 笏? 笏?笏? 笏?笘?闊貞シ<E8B29E>蜴具シ<E585B7>mHg<48>? 郛コ螟ア<E89E9F>?<3F>?%<25>? 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?笏? 譁ー蛻怜多蜷崎ァ<E5B48E><EFBDA7><EFBFBD>? 笏?笏? 笘?閾ェ蜉ィ蜻ス蜷搾シ壼次蛻怜錐 + "_MICE" 笏?笏? 遉コ萓具シ壻ス馴㍾<E9A6B4><E38DBE>g<EFBFBD>?竊?菴馴㍾<E9A6B4><E38DBE>g<EFBFBD>雲MICE 笏?笏? 謾カ郛ゥ蜴具シ<E585B7>mHg<48>?竊?謾カ郛ゥ蜴具シ<E585B7>mHg<48>雲MICE 笏?笏? 笏?笏? 蜿よ焚隶セ鄂ョ<E98482>? 笏?笏? 霑ュ莉」谺。謨ー<E8ACA8>喙10笆シ] <20>磯サ倩ョ?0谺。<E8B0BA>瑚激蝗エ5-50<35>? 笏?笏? 髫乗惻遘榊ュ撰シ喙42 ] <20>育。ョ菫晉サ捺棡蜿ッ驥榊、搾シ? 笏?笏? 笏?笏? <20>投 MICE隸エ譏趣シ? 笏?笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?MICE莨壽<E88EA8>ケ謐ョ蜈カ莉門序驥冗噪蛟シ譚・鬚<EFBDA5>オ狗シコ螟ア蛟シ縲? 笏? 笏?笏? 笏? 笏? 笏?笏? 笏?笨?騾ら畑蝨コ譎ッ<E8AD8E>? 笏? 笏?笏? 笏? 窶?郛コ螟ア邇?%-30% 笏? 笏?笏? 笏? 窶?髴€隕∬€<E288AC>剔蜿倬㍼髣エ逧<EFBDB4>嶌蜈ウ諤? 笏? 笏?笏? 笏? 窶?螟壻クェ蜿倬㍼蜷梧慮譛臥シコ螟? 笏? 笏?笏? 笏? 窶?蛹サ蟄ヲ遐皮ゥカ鬮倩エィ驥丞。ォ陦・逧<EFBDA5>ヲ夜€画婿豕?箝? 笏? 笏?笏? 笏? 笏? 笏?笏? 笏?笞<><E7AC9E><EFBFBD> 豕ィ諢擾シ? 笏? 笏?笏? 笏? 窶?隶。邂玲慮髣エ霎<EFBDB4><EFBFBD>?0荳<30>。檎コ?蛻<><EFBFBD>? 笏? 笏?笏? 笏? 窶?髴€隕∬カウ螟溽噪譛画譜譬キ譛ャ<E8AD9B>亥サコ隶?50%譛画譜<E794BB>? 笏? 笏?笏? 笏? 窶?譁ー蛻怜ー<E6809C><EFBDB0>蟒コ蝨ィ蜷<EFBDA8>次蛻玲浴霎ケ<E99C8E>御セソ莠主ッケ豈<EFBDB9> 笏? 笏?笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?笏? 笏?笏? <20>庁 譁ー蛻嶺ス咲スョ<EFBDBD>壽ッ丈クェ譁ー蛻礼エァ驍サ蜈カ蜴溷<E89CB4><E6BAB7>御セソ莠朱€<C280>鬪瑚ッ<E7919A> 笏?笏? 笏?笏? [蜿匁カ<E58C81> [謇ァ陦勲ICE蝪ォ陦・] 笏?笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?```
---
## <20><EFBFBD>?謚€譛ッ螳樒鴫譁ケ譯?
### 1. Python遶ッ<E981B6><EFBDAF>xtraction_service<63>?
#### 譁ー蠅樊枚莉カ<E88E89>啻operations/fillna.py`
```python
"""
郛コ螟ア蛟シ蝪ォ陦?- 鬚<><E9AC9A>蜃ス謨ー
謾ッ謖∝插蛟シ縲∽クュ菴肴焚縲∽シ玲焚縲∝崋螳壼€シ縲ICE蝪ォ陦・
"""
import pandas as pd
import numpy as np
from typing import Literal, Optional, List, Union, Any
from sklearn.impute import IterativeImputer
def fillna_simple(
df: pd.DataFrame,
column: str,
new_column_name: str,
method: Literal['mean', 'median', 'mode', 'constant', 'ffill', 'bfill'],
fill_value: Any = None
) -> dict:
"""
€蜊募。ォ陦・郛コ螟ア蛟シ<E89B9F><EFBFBD>蟒コ譁ー蛻暦シ?
Args:
df: 霎灘<E99C8E>謨ー謐ョ譯? column: 蜴溷ァ句<EFBDA7><EFBFBD>
new_column_name: 譁ー蛻怜錐<E6809C>亥ヲ?菴馴㍾_蝪ォ陦・"<EFBFBD>? method: 蝪ォ陦・譁ケ豕<EFBDB9>
- 'mean': 蝮<>€シ蝪ォ陦? - 'median': 荳ュ菴肴焚蝪ォ陦? - 'mode': 莨玲焚蝪ォ陦・
- 'constant': 蝗コ螳壼€シ蝪ォ陦? - 'ffill': 蜑榊髄蝪ォ蜈<EFBDAB>シ育畑蜑堺ク€荳ェ髱樒シコ螟ア蛟シ<E89B9F><EFBDBC>
- 'bfill': 蜷主髄蝪ォ蜈<EFBDAB>シ育畑蜷惹ク€荳ェ髱樒シコ螟ア蛟シ<E89B9F><EFBDBC>
fill_value: 蝗コ螳壼€<C280><EFBDBC>ethod='constant'譌カ蠢<EFBFBD>。ォ<EFBFBD><EFBFBD>
Returns:
{
'df': 蛹<>性譁ー蛻礼噪謨ー謐ョ譯<EFBDAE>シ域眠蛻礼エァ驍サ蜴溷<E89CB4><E6BAB7><EFBFBD>,
'stats': {
'original_column': 蜴溷<E89CB4>蜷?
'new_column': 譁ー蛻怜<E89BBB>?
'missing_before': 郛コ螟ア謨ー驥<EFBDB0>,
'fill_value': 蝪ォ陦・逧<EFBDA5>€?
'mean_after': 蝪ォ陦・蜷主插蛟?
'std_after': 蝪ォ陦・蜷取<E89CB7><E58F96>㊥蟾ョ
}
}
螳樒鴫扈<E9B4AB><EFBFBD>? 1. 螟榊宛蜴溷<E89CB4>謨ー謐ョ
2. 謇ァ陦悟。ォ陦・
3. 菴ソ逕ィ df.insert() 蟆<>眠蛻玲薯蜈・蛻ー蜴溷<E89CB4>譌∬セケ
4. 霑泌屓蛹<E5B193>性譁ー蛻礼噪螳梧紛謨ー謐ョ譯<EFBDAE>
"""
def get_column_missing_stats(
df: pd.DataFrame,
column: str
) -> dict:
"""
闔キ蜿門<E89CBF><EFBFBD>シコ螟ア蛟シ扈溯ョ。菫。諱?
Returns:
{
'missing_count': 郛コ螟ア謨ー驥<EFBDB0>,
'missing_rate': 郛コ螟ア邇?
'valid_count': 譛画譜蛟シ謨ー驥?
'data_type': 謨ー謐ョ邀サ蝙<EFBDBB>,
'value_range': [min, max], # 莉<>焚蛟シ蝙<EFBDBC>
'mean': 蝮<>€? # 莉<>焚蛟シ蝙<EFBDBC>
'median': 荳ュ菴肴<E88FB4>? # 莉<>焚蛟シ蝙<EFBDBC>
'mode': 莨玲焚,
'recommended_method': 謗ィ闕千噪蝪ォ陦・譁ケ豕? }
"""
def fillna_mice(
df: pd.DataFrame,
columns: List[str],
n_iterations: int = 10,
random_state: int = 42
) -> dict:
"""
MICE螟夐㍾謠定。・<EFBDA1><EFBFBD>蟒コ譁ー蛻暦シ俄ュ?蠢<>。サ螳樒鴫
Args:
df: 霎灘<E99C8E>謨ー謐ョ譯? columns: 隕∝。ォ陦・逧<EFBDA5><E980A7>蜷榊<E89CB7>陦ィ<E999A6>亥ヲ<E4BAA5>"菴馴㍾<EFBFBD><EFBFBD>g<EFBFBD>?, "謾カ郛ゥ蜴具シ<EFBFBD>mHg<EFBFBD>?]<5D>? n_iterations: 霑ュ莉」谺。謨ー<E8ACA8>磯サ倩ョ?0<>瑚激蝗?-50<35>? random_state: 髫乗惻遘榊ュ撰シ磯サ倩ョ?2<>檎。ョ菫晉サ捺棡蜿ッ驥榊、搾シ?
Returns:
{
'df': 蛹<>性謇€譛画眠蛻礼噪謨ー謐ョ譯<EFBDAE>シ域ッ丈クェ譁ー蛻礼エァ驍サ蜈カ蜴溷<E89CB4><E6BAB7><EFBFBD>,
'stats': {
column: {
'original_column': 蜴溷<E89CB4>蜷?
'new_column': 譁ー蛻怜錐<E6809C>亥次蜷浩MICE<43>?
'missing_before': 郛コ螟ア謨ー驥<EFBDB0>,
'filled_count': 蝪ォ陦・謨ー驥<EFBDB0>,
'mean_before': 蝪ォ陦・蜑榊插蛟?
'mean_after': 蝪ォ陦・蜷主插蛟? }
}
}
螳樒鴫扈<E9B4AB><EFBFBD>? 1. 蟇ケ謇€騾牙<E9A8BE>謇ァ陦勲ICE蝪ォ陦・
2. 荳コ豈丞<E8B188>蛻帛サコ譁ー蛻暦シ亥多蜷搾シ壼次蛻怜錐_MICE<43>? 3. 菴ソ逕ィ df.insert() 蟆<>ッ丈クェ譁ー蛻玲薯蜈・蛻ー蜈カ蜴溷<E89CB4>譌∬セ? 4. 霑泌屓蛹<E5B193>性謇€譛画眠蛻礼噪螳梧紛謨ー謐ョ譯?
遉コ萓具シ? 蜴溷<E89CB4><E6BAB7>壻ス馴㍾<E9A6B4><E38DBE>g<EFBFBD>€∵噺郛ゥ蜴具シ<E585B7>mHg<48>? 譁ー蛻暦シ壻ス馴㍾<E9A6B4><E38DBE>g<EFBFBD>雲MICE縲∵噺郛ゥ蜴具シ<E585B7>mHg<48>雲MICE
扈捺棡鬘コ蠎擾シ壻ス馴㍾<E9A6B4><E38DBE>g<EFBFBD>€∽ス馴㍾<E9A6B4><E38DBE>g<EFBFBD>雲MICE縲∵噺郛ゥ蜴具シ<E585B7>mHg<48>€∵噺郛ゥ蜴具シ<E585B7>mHg<48>雲MICE縲?..
"""
```
#### 菫ョ謾ケ譁<EFBDB9>サカ<EFBDBB>啻main.py`
```python
# 譁ー蠅暸PI遶ッ轤ケ
@app.post("/fillna-simple")
async def operation_fillna_simple(request: FillnaSimpleRequest):
"""邂€蜊募。ォ陦・郛コ螟ア蛟?""
@app.post("/fillna-stats")
async def get_fillna_stats(request: FillnaStatsRequest):
"""闔キ蜿門<EFBFBD><EFBFBD>シコ螟ア蛟シ扈溯ョ?""
@app.post("/fillna-mice")
async def operation_fillna_mice(request: FillnaMiceRequest):
"""MICE螟夐㍾謠定。・"""
```
### 2. Node.js蜷守ォッ<EFBDAB><EFBDAF>ackend<6E>?
#### 菫ョ謾ケ譁<EFBDB9>サカ<EFBDBB>啻services/QuickActionService.ts`
```typescript
// 譁ー蠅樊婿豕<E5A9BF>
async executeFillnaSimple(params: {
sessionId: string;
column: string;
method: 'mean' | 'median' | 'mode' | 'constant' | 'ffill' | 'bfill';
fillValue?: any;
}): Promise<any>
async getFillnaStats(params: {
sessionId: string;
column: string;
}): Promise<any>
async executeFillnaMice(params: {
sessionId: string;
columns: string[];
nIterations: number;
}): Promise<any>
```
#### 菫ョ謾ケ譁<EFBDB9>サカ<EFBDBB>啻controllers/QuickActionController.ts`
```typescript
// 譁ー蠅槫、<E6A7AB>炊譁ケ豕<EFBDB9>
async handleFillnaSimple(request, reply)
async getFillnaStats(request, reply)
async handleFillnaMice(request, reply)
```
### 3. 蜑咲ォッ<EFBDAB><EFBDAF>rontend-v2<76>?
#### 驥榊多蜷肴枚莉?- `DropnaDialog.tsx` 竊?`MissingValueDialog.tsx`
#### 菫ョ謾ケ譁<EFBDB9>サカ<EFBDBB>啻MissingValueDialog.tsx`
```typescript
interface MissingValueDialogProps {
open: boolean;
onClose: () => void;
sessionId: string;
columns: Array<{ id: string; name: string; type?: string }>;
onSuccess: () => void;
}
// 譁ー蠅樒憾諤?const [activeTab, setActiveTab] = useState<'delete' | 'fill' | 'mice'>('fill');
const [selectedColumn, setSelectedColumn] = useState<string>('');
const [fillMethod, setFillMethod] = useState<'mean' | 'median' | 'mode' | 'constant' | 'ffill' | 'bfill'>('median');
const [fillValue, setFillValue] = useState<any>(null);
const [columnStats, setColumnStats] = useState<any>(null);
// Tab 1: 蛻<>髯、<E9ABAF>井ソ晉蕗蜴滓怏騾サ霎托シ?// Tab 2: 蝪ォ陦・<E999A6>域眠蠅橸シ<E6A9B8>
// Tab 3: MICE<43>域眠蠅橸シ<E6A9B8>
```
#### 菫ョ謾ケ譁<EFBDB9>サカ<EFBDBB>啻index.tsx`
```typescript
// 譖エ譁ー謖蛾聴扈?const actionButtons = [
// ...
{
key: 'missing',
icon: <DeleteOutlined />,
label: '<EFBFBD><EFBFBD>?, // 竊?驥榊多蜷? onClick: () => setMissingValueDialogOpen(true),
},
// ...
];
```
---
## <20>唐 譁<>サカ菫ョ謾ケ貂<EFBDB9>
### 譁ー蠅樊枚莉カ
1. `extraction_service/operations/fillna.py` - 蝪ォ陦・蜉溯<E89C89>螳樒鴫
2. `docs/03-荳壼苅讓。蝮<EFBDA1>/DC-謨ー謐ョ貂<EFBDAE>エ玲紛逅<E7B49B>/04-蠑€蜿題ョ。蛻?蟾・蜈キC_郛コ螟ア蛟シ螟<EFBDBC>炊蜉溯<E89C89>€蜿題ョ。蛻?md` - 譛ャ譁<EFBDAC>。?
### 菫ョ謾ケ譁<EFBDB9>サカ
#### Python遶?1. `extraction_service/main.py`
- 譁ー蠅<EFBDB0> `/fillna-simple` 遶ッ轤ケ
- 譁ー蠅<EFBDB0> `/fillna-stats` 遶ッ轤ケ
- 譁ー蠅<EFBDB0> `/fillna-mice` 遶ッ轤ケ
#### Node.js蜷守ォッ
2. `backend/src/modules/dc/tool-c/services/QuickActionService.ts`
- 譁ー蠅<EFBDB0> `executeFillnaSimple` 譁ケ豕<EFBDB9>
- 譁ー蠅<EFBDB0> `getFillnaStats` 譁ケ豕<EFBDB9>
- 譁ー蠅<EFBDB0> `executeFillnaMice` 譁ケ豕<EFBDB9>
3. `backend/src/modules/dc/tool-c/controllers/QuickActionController.ts`
- 譁ー蠅<EFBDB0> `handleFillnaSimple`<>炊譁ケ豕<EFBDB9>
- 譁ー蠅<EFBDB0> `getFillnaStats`<>炊譁ケ豕<EFBDB9>
- 譁ー蠅<EFBDB0> `handleFillnaMice`<>炊譁ケ豕<EFBDB9>
#### 蜑咲ォッ
4. `frontend-v2/src/modules/dc/pages/tool-c/components/DropnaDialog.tsx`
- **驥榊多蜷堺クコ** `MissingValueDialog.tsx`
- 譁ー蠅<EFBDB0> Tabs 扈<>サカ<EFBDBB>亥唖髯?蝪ォ陦・/鬮倡コァ蝪ォ陦・<E999A6>? - Tab 1: 菫晉蕗蜴滓怏蛻<E6808F>髯、蜉溯<E89C89>
- Tab 2: 譁ー蠅樒ョ€蜊募。ォ陦・蜉溯<E89C89><E6BAAF>亥插蛟?荳ュ菴肴<E88FB4>?莨玲焚/蝗コ螳壼€<C280><EFBDBC>
- Tab 3: 譁ー蠅朞ICE蝪ォ陦・蜉溯<E89C89>
5. `frontend-v2/src/modules/dc/pages/tool-c/index.tsx`
- 譖エ譁ー謖蛾聴譬<E881B4>ュセ<EFBDAD>啻蛻<E595BB>髯、郛コ螟ア蛟シ` 竊?`郛コ螟ア蛟シ螟<EFBFBD>炊`
- 譖エ譁ー Dialog 扈<>サカ蠑慕畑
6. `frontend-v2/src/modules/dc/api/index.ts`
- 譁ー蠅<EFBDB0> `fillnaSimple` API
- 譁ー蠅<EFBDB0> `getFillnaStats` API
- 譁ー蠅<EFBDB0> `fillnaMice` API
---
## <20>売 蠑€蜿第ュ・鬪?
### Step 1: Python遶ッ蝓コ遑€蜉溯<E89C89><E6BAAF>?0min<69>?1. 蛻帛サコ `fillna.py`
2. 螳樒鴫 `fillna_simple` 蜃ス謨ー
3. 螳樒鴫 `get_column_missing_stats` 蜃ス謨ー
4. 蝨?`main.py` 豺サ蜉<EFBDBB>蟇ケ蠎皮ォッ轤ケ
5. 豬玖ッ包シ壻スソ逕ィPostman謌膨url豬玖ッ柊PI
### Step 2: Python遶ッ鬮倡コァ蜉溯<E89C89><E6BAAF><EFBFBD>30min<69>?1. 螳樒鴫 `fillna_mice` 蜃ス謨ー
2. 蝨?`main.py` 豺サ蜉<EFBDBB>蟇ケ蠎皮ォッ轤ケ
3. 豬玖ッ包シ壻スソ逕ィPostman豬玖ッ筆ICE蜉溯<E89C89>
### Step 3: Node.js蜷守ォッ<EFBDAB>?0min<69>?1. 菫ョ謾ケ `QuickActionService.ts`
2. 菫ョ謾ケ `QuickActionController.ts`
3. 豬玖ッ包シ夂。ョ菫戡PI霓ャ蜿第ュ」蟶ク
### Step 4: 蜑咲ォッUI驥肴桷<E882B4>?0min<69>?1. 驥榊多蜷?`DropnaDialog.tsx` 竊?`MissingValueDialog.tsx`
2. 螳樒鴫Tabs扈捺桷
3. Tab 1: 霑∫ァサ蜴滓怏蛻<E6808F>髯、蜉溯<E89C89>
4. Tab 2: 螳樒鴫邂€蜊募。ォ陦・UI
5. Tab 3: 螳樒鴫MICE蝪ォ陦・UI
6. 譖エ譁ー `index.tsx` 荳ュ逧<EFBDAD>シ慕畑蜥梧潔髓ョ譬<EFBDAE>ュ?
### Step 5: 蜑咲ォッAPI髮<49><E9ABAE><EFBFBD>?0min<69>?1. 蝨?`api/index.ts` 豺サ蜉<EFBDBB>譁ーAPI
2.<><E9ABAE>蛻?`MissingValueDialog.tsx`
3. 螳樒鴫螳樊慮扈溯ョ。闔キ蜿<EFBDB7>
4. 螳樒鴫蝪ォ陦・鬚<EFBDA5><EFBFBD>
### Step 6: 遶ッ蛻ー遶ッ豬玖ッ包シ<E58C85>30min<69>?1. 豬玖ッ募插蛟シ蝪ォ陦?2. 豬玖ッ穂クュ菴肴焚蝪ォ陦?3. 豬玖ッ穂シ玲焚蝪ォ陦・
4. 豬玖ッ募崋螳壼€シ蝪ォ陦?5. 豬玖ッ筆ICE蝪ォ陦・
6. 豬玖ッ募唖髯、蜉溯<E89C89><E6BAAF>育。ョ菫晄悴遐エ蝮丞次譛牙粥閭ス<E996AD>?
### Step 7: 莨伜喧蜥梧枚譯」<E8ADAF><EFBDA3>20min<69>?1. 豺サ蜉<EFBDBB>髞呵ッッ螟<EFBDAF>
2. 莨伜喧蜉<E596A7>霓ス迥カ諤?3. 譖エ譁ー逕ィ謌キ謠千、コ
4. 隶ー蠖募シ€蜿第€サ扈<EFBDBB>
**諤サ隶。<E99AB6>夂コヲ3蟆乗慮**
---
## <20>ァェ 豬玖ッ戊ョ。蛻<EFBDA1>
### 蜉溯<E89C89>豬玖ッ慕畑萓<E79591>
#### 豬玖ッ墓焚謐ョ蜃<EFBDAE><EFBFBD>
```
- 謨ー蛟シ蛻暦シ域ュ」諤∝<E8ABA4><EFBFBD>シ会シ壼ケエ鮴<EFBDB4>シ育シコ螟ア15%<25>?- 謨ー蛟シ蛻暦シ亥¥諤∝<E8ABA4><EFBFBD>シ会シ壻ス馴㍾<E9A6B4>育シコ螟ア20%<25>?- 蛻<>アサ蛻暦シ壼ゥ壼ァサ迥カ蜀オ<E89C80>育シコ螟?0%<25>?- 螟壼<E89E9F>郛コ螟ア<E89E9F>壽噺郛ゥ蜴具シ?5%<25>? 闊貞シ<E8B29E>蜴具シ<E585B7>12%<25>?- 譌カ髣エ蠎丞<E8A08E>蛻暦シ夐囂隶ソ陦€蜴具シ域怏鬘コ蠎擾シ檎シコ螟ア18%<25>? 逕ィ莠取オ玖ッ募<EFBDAF>?蜷主髄蝪ォ蜈<EFBDAB>
```
#### 豬玖ッ慕畑萓<E79591>
| 郛門捷 | 蜉溯<E89C89> | 豬玖ッ募惻譎ッ | 鬚<>悄扈捺棡 |
|------|------|----------|----------|
| TC-1 | 蝮<>€シ蝪ォ陦?| 蟇?蟷エ鮴<EFBDB4>"蛻嶺スソ逕ィ蝮<EFBDA8>€シ蝪ォ陦・<E999A6>梧眠蛻怜<E89BBB>?蟷エ鮴Ю蝪ォ陦・" | 蛻帛サコ譁ー蛻暦シ檎シコ螟ア蛟シ陲ォ蝮<EFBDAB>€シ蝪ォ蜈<EFBDAB>シ悟次蛻嶺ク榊序 笨?|
| TC-2 | 荳ュ菴肴焚蝪ォ陦?| 蟇?菴馴㍾"蛻嶺スソ逕ィ荳ュ菴肴焚蝪ォ陦・ | 蛻帛サコ譁ー蛻暦シ檎シコ螟ア蛟シ陲ォ荳ュ菴肴焚蝪ォ蜈?笨?|
| TC-3 | 莨玲焚蝪ォ陦・ | 蟇?蟀壼ァサ迥カ蜀オ"蛻嶺スソ逕ィ莨玲焚蝪ォ陦?| 蛻帛サコ譁ー蛻暦シ檎シコ螟ア蛟シ陲ォ莨玲焚蝪ォ蜈<EFBDAB> 笨?|
| TC-4 | 蝗コ螳壼€シ蝪ォ陦・<E999A6>域焚蛟シ<E89B9F><EFBDBC> | 蟇?蟷エ鮴<EFBDB4>"蛻怜。ォ蜈<EFBDAB>崋螳壼€?0" | 蛻帛サコ譁ー蛻暦シ梧園譛臥シコ螟ア蛟シ蜿倅ク? 笨?|
| TC-5 | 蝗コ螳壼€シ蝪ォ陦・<E999A6>域枚譛ャ<E8AD9B>?| 蟇?蟀壼ァサ迥カ蜀オ"蛻怜。ォ蜈?譛ェ遏・" | 蛻帛サコ譁ー蛻暦シ梧園譛臥シコ螟ア蛟シ蜿倅ク?譛ェ遏・" 笨?|
| TC-6 | MICE蝪ォ陦・ | 騾画叫"謾カ郛ゥ蜴?+"闊貞シ<E8B29E>蜴?<3F>梧鴬陦勲ICE | 蛻帛サコ2荳ェ譁ー蛻暦シ<E69AA6>MICE蜷守シ€<EFBDBC>会シ檎シコ螟ア蛟シ陲ォ鬚<EFBDAB><EFBFBD> 笨?|
| TC-7 | 譁ー蛻嶺ス咲スョ鬪瑚ッ<E7919A> 箝?| 蟇?蛻輸"蝪ォ陦・<E999A6>梧衍逵区眠蛻嶺ス咲ス?| 譁ー蛻<EFBDB0>"蛻輸_蝪ォ陦・"邏ァ驍サ蜴溷<E89CB4>"蛻輸"蜿ウ萓ァ 笨?|
| TC-8 | MICE譁ー蛻嶺ス咲スョ 箝?| 蟇?蛻輸"+"蛻佑"謇ァ陦勲ICE | 蛻輸_MICE蝨ィ蛻輸譌<E8BCB8>シ悟<EFBDBC>C_MICE蝨ィ蛻佑譌?笨?|
| TC-9 | 扈溯ョ。菫。諱ッ蜃<EFBDAF>。ョ諤?| 騾画叫莉サ諢丞<E8ABA2><E4B89E>梧衍逵狗サ溯ョ。菫。諱ッ | 譏セ遉コ豁」遑ョ逧<EFBDAE>シコ螟ア謨ー縲∝插蛟シ縲∽クュ菴肴焚遲?|
| TC-10 | 蛻<>髯、蜉溯<E89C89>菫晉蕗 | Tab 1蛻<31>髯、郛コ螟ア陦?| 蜉溯<E89C89>豁」蟶ク<E89FB6>御ク主次蜉溯<E89C89>€閾?|
| TC-11 | 遨コ蛻怜、<E6809C>炊 | 蟇ケ螳悟<E89EB3><EFBFBD>郛コ螟ア逧<EFBDB1><E980A7>謇ァ陦悟。ォ陦・ | 謠千、コ"隸・蛻玲裏郛コ螟ア蛟?謌門、榊宛蜴溷<E89CB4>?|
| TC-12 | 蜈ィ郛コ螟ア蛻怜、<E6809C>炊 | 蟇ケ蜈ィ驛ィ郛コ螟ア逧<EFBDB1><E980A7>謇ァ陦悟。ォ陦?| 謠千、コ隴ヲ蜻奇シ御サ榊<EFBDBB>蟒コ譁ー蛻暦シ亥<EFBDBC>驛ィ荳コ蝪ォ陦・蛟シ<E89B9F><EFBDBC> |
| TC-13 | 驥榊、肴眠蛻怜錐螟<E98C90><E89E9F>?| 譁ー蛻怜錐蟾イ蟄伜惠 | 閾ェ蜉ィ豺サ蜉<EFBDBB>蜷守シ€<EFBDBC>亥ヲ<E4BAA5>"菴馴㍾_蝪ォ陦・_1"<22><EFBFBD>謠千、コ |
| TC-14 | 蜴溷ァ区焚謐ョ菫晉蕗 箝?| 蝪ォ陦・蜷趣シ梧」€譟・蜴溷<E89CB4>?| 蜴溷<E89CB4>謨ー謐ョ螳悟<E89EB3>荳榊序 笨?|
### 霎ケ逡梧オ玖ッ<E78E96>
| 豬玖ッ暮。?| 蝨コ譎ッ | 鬚<>悄 |
|--------|------|------|
| 雜<>、ァ謨ー謐ョ髮?| 10荳<30>。梧焚謐ョ謇ァ陦勲ICE | 譏セ遉コ霑帛コヲ<EFBDBA>御ク榊エゥ貅<EFBDA9> |
| 迚ケ谿雁ュ礼ャヲ蛻怜錐 | 蛻怜錐蟶ヲ諡ャ蜿キ縲∫ュ牙<EFBDAD>?| 豁」蟶ク螟<EFBDB8><EFBFBD>井スソ逕ィcolumnMapping<6E>?|
| 謨ー謐ョ邀サ蝙区キキ蜷<EFBDB7> | 蟇ケ譁<EFBDB9>悽蛻玲鴬陦悟插蛟シ蝪ォ陦?| 謠千、コ髞呵ッッ謌冶<E8AC8C>蜉ィ霍ウ霑?|
| 蟷カ蜿大、<E5A4A7>炊 | 蜷梧慮謇灘シ€螟壻クェDialog | 迥カ諤<EFBDB6>囈遖サ<E98196>御ク堺コ堤嶌蠖ア蜩?|
---
## <20>投 諤ァ閭ス隕∵ア<E288B5>
| 謫堺ス<E5A0BA> | 謨ー謐ョ驥?| 逶ョ譬<EFBDAE>桃蠎疲慮髣エ |
|------|--------|--------------|
| 邂€蜊募。ォ陦・<E999A6>亥插蛟?荳ュ菴肴<E88FB4>?莨玲焚<E78EB2>?| 1荳<31><EFBFBD> | < 1遘?|
| 邂€蜊募。ォ陦?| 10荳<30><EFBFBD> | < 5遘?|
| MICE蝪ォ陦・ | 1荳<31><EFBFBD> | < 10遘?|
| MICE蝪ォ陦・ | 10荳<30><EFBFBD> | < 60遘?|
| 扈溯ョ。菫。諱ッ闔キ蜿<EFBDB7> | 莉サ諢<EFBDBB> | < 0.5遘?|
---
## <20>圷 鬟朱勦蜥梧ウィ諢丈コ矩。?
### 1. 謨ー謐ョ螳牙<E89EB3> 笨?蟾イ隗」蜀?- 笨?蝪ォ陦・謫堺ス懷<EFBDBD>蟒コ譁ー蛻暦シ悟次蟋区焚謐ョ螳悟<E89EB3>菫晉<E88FAB>?- 笨?譁ー蛻礼エァ驍サ蜴溷<E89CB4><E6BAB7>御セソ莠主ッケ豈秘ェ瑚ッ?- 笨?譌<>€謦、髞€蜉溯<E89C89><E6BAAF>亥次蟋区焚謐ョ譛ェ陲ォ菫ョ謾ケ<E8ACBE><EFBDB9>
- 笨?逕ィ謌キ蜿ッ髫乗慮蛻<E685AE>髯、蝪ォ陦・蜷守噪蛻暦シ梧<EFBDBC>驥肴眠蝪ォ陦・
### 2. MICE諤ァ閭ス 箝?驥咲せ蜈ウ豕ィ
-<><E7AC9E><EFBFBD> MICE蝨ィ螟ァ謨ー謐ョ髮<EFBDAE>ク雁庄閭ス蠕域<E8A095><E59F9F>?0荳<30>。檎コ?蛻<><EFBFBD>?- 笨?**蠢<>。サ譏セ遉コ霑帛コヲ譚。謌門刈霓ス蜉ィ逕サ**
- 笨?豺サ蜉<EFBDBB>"鬚<>ョ。閠玲慮"謠千、コ<EFBDA4>亥渕莠取焚謐ョ驥丈シー邂暦シ?- 笨?謠蝉セ<E89D89>"蜿匁カ域鴬陦<E9B4AC>"謖蛾聴<E89BBE>磯柄譌カ髣エ莉サ蜉。<E89C89>?- <20>庁 莨伜喧蟒コ隶ョ<E99AB6>€<E5A48A>剔菴ソ逕ィWeb Worker謌門錘蜿ー莉サ蜉。髦溷<E9ABA6>?
### 3. 謨ー謐ョ邀サ蝙句<E89D99>螳ケ諤?- 笞<><E7AC9E><EFBFBD><>€?荳ュ菴肴焚蜿ェ騾ら畑莠取焚蛟シ蛻<EFBDBC>
- 笨?髴€隕∝燕遶ッ鬪瑚ッ∝<EFBDAF><EFBFBD>焚謐ョ邀サ蝙?- 笨?蜷守ォッ荵滄怙隕∵<E99A95>。鬪悟ケカ霑泌屓蜿句・ス髞呵ッッ
### 4. 蛻怜錐迚ケ谿雁ュ礼ャヲ
-<><E7AC9E><EFBFBD> 蛻怜錐蜿ッ閭ス蛹<EFBDBD>性迚ケ谿雁ュ礼ャヲ
- 笨?菴ソ逕ィ邇ー譛臥<E8AD9B>?`columnMapping` 譛コ蛻カ
- 笨?遑ョ菫昜ク残ompute蛻怜粥閭ス荳€閾?
### 5. 蜈ィ驛ィ郛コ螟ア逧<EFBDB1><E980A7>
-<><E7AC9E><EFBFBD> 螯よ棡蛻怜<E89BBB>驛ィ荳コ遨コ<E981A8>悟插蛟?荳ュ菴肴焚荳コNaN
- 笨?髴€隕∫音谿雁、<E99B81>炊蟷カ謠千、コ逕ィ謌キ
---
## <20>統 萓晁オ夜。?
### Python萓晁オ厄シ磯怙隕∫。ョ隶、<E99AB6><EFBDA4>
```
pandas >= 1.5.0
numpy >= 1.23.0
scikit-learn >= 1.2.0 # 竊?MICE髴€隕?```
### 蜑咲ォッ萓晁オ<E69981>
- 譌<>譁ー蠅樔セ晁オ厄シ井スソ逕ィ邇ー譛臥噪Ant Design扈<6E>サカ<EFBDBB>?
---
## <20>識 鬪梧噺譬<E599BA>
### 蠢<>。サ貊。雜ウ 箝?1. 笨?**MICE蜉溯<E89C89>螳悟<E89EB3>螳樒鴫**<2A>磯撼蟶ク驥崎ヲ<E5B48E><EFBFBD>シ?2. 笨?**譁ー蛻嶺ス咲スョ豁」遑ョ**<2A>育エァ驍サ蜴溷<E89CB4>蜿ウ萓ァ<E89093><EFBDA7>
3. 笨?**蜴溷ァ区焚謐ョ螳悟<E89EB3>菫晉蕗**<2A>亥。ォ陦・荳堺ソョ謾ケ蜴溷<E89CB4><E6BAB7>?4. 笨?謇€譛画オ玖ッ慕畑萓矩€夊ソ<E5A48A>シ育音蛻ォ譏ッTC-7, TC-8, TC-14<31>?5. 笨?譌<>Breaking Changes<65>亥次譛牙唖髯、蜉溯<E89C89>荳榊女蠖ア蜩搾シ<E690BE>
6. 笨?UI隨ヲ蜷郁ョセ隶。遞ソ<E9819E><EFBDBF>3荳ェTab蛻<62>困豬∫腐<E288AB>?7. 笨?莉」遐<EFBDA3>€夊ソ⑬inter譽€譟?8. 笨?豺サ蜉<EFBDBB>騾ょス鍋噪譌・蠢怜柱髞呵ッッ螟<EFBDAF>
9. 笨?MICE譏セ遉コ霑帛コヲ譚。謌門刈霓ス蜉ィ逕サ
### 蜉<><EFBFBD>。?1. 箝?諤ァ閭ス莨倅コ朱「<E69CB1>
2. 箝?UI蜉ィ逕サ豬∫腐
3. 箝?髞呵ッッ謠千、コ蜿句・ス荳泌<E88DB3>菴?4. 箝?豺サ蜉<EFBDBB>蜊募<E89C8A>豬玖ッ<E78E96>
---
## <20>套 譌カ髣エ莨ー邂暦シ亥キイ譖エ譁ー<E8AD81>?
| 髦カ谿オ | 鬚<>ョ。譌カ髣エ | 螟<>ウィ |
|------|----------|------|
| Python蜷守ォッ - 邂€蜊募。ォ陦?| 40蛻<30>帖 | fillna.py蝓コ遑€蜉溯<E89C89> |
| Python蜷守ォッ - MICE蝪ォ陦・ 箝?| 50蛻<30>帖 | **蠢<>。サ螳樒鴫**<2A>悟桁諡ャsklearn髮<6E><E9ABAE> |
| Python蜷守ォッ - 譁ー蛻玲薯蜈・騾サ霎<EFBDBB> | 30蛻<30>帖 | df.insert()螳樒鴫<E6A892>檎。ョ菫晄眠蛻礼エァ驍サ蜴溷<E89CB4>?|
| Python - main.py遶ッ轤ケ | 20蛻<30>帖 | 譁ー蠅<EFBDB0>3荳ェAPI遶ッ轤ケ |
| Node.js蜷守ォッ | 20蛻<30>帖 | 邂€蜊戊スャ蜿?|
| 蜑咲ォッUI - Tab扈捺桷 | 30蛻<30>帖 | 3荳ェTab蛻<62>困 |
| 蜑咲ォッUI - Tab 2<>育ョ€蜊募。ォ陦・<E999A6><EFBDA5> | 40蛻<30>帖 | 陦ィ蜊<EFBDA8> + 扈溯ョ。 + 譁ー蛻怜錐霎灘<E99C8E>?|
| 蜑咲ォッUI - Tab 3<><33>ICE<43>?箝?| 40蛻<30>帖 | 螟夐€<C280> + 蜿よ焚 + 霑帛コヲ譚?|
| API髮<49><E9ABAE> | 30蛻<30>帖 | 蜑咲ォッ隹<EFBDAF>畑蜷守ォッ<EFBDAB>悟、<E6829F>炊譁ー蛻怜錐 |
| 豬玖ッ<E78E96> | 40蛻<30>帖 | 14荳ェ豬玖ッ慕畑萓具シ碁㍾轤ケ豬玖ッ墓眠蛻嶺ス咲スョ |
| 莨伜喧蜥梧枚譯?| 20蛻<30>帖 | 髞呵ッッ螟<EFBDAF>炊 + 譁<>。」 |
| **諤サ隶。** | **郤?-6蟆乗慮** | **蛹<>性螳梧紛MICE螳樒鴫** 箝?|
**隸エ譏<EFBDB4>**<2A>?- MICE譏ッ蛹サ蟄ヲ遐皮ゥカ逧<EFBDB6><E980A7>ク蠢<EFBDB8>怙豎ゑシ悟ソ<E6829F>。サ螳梧紛螳樒鴫
- 譁ー蛻玲薯蜈・騾サ霎鷹怙隕∽サ皮サ<E79AAE><EFBFBD><EFBFBD>檎。ョ菫昜ス咲スョ豁」遑ョ
- 蜑咲ォッ髴€<C280>「晏、匁慮髣エ螟<EFBDB4>炊譁ー蛻怜錐霎灘<E99C8E>蜥碁「<E7A281>ァ?
---
## <20>答 蜿り€<E3828A><EFBFBD><EFBDB5>?
### 郛コ螟ア蛟シ蝪ォ陦・逅<EFBDA5>ョ?- [sklearn.impute.IterativeImputer譁<72>。」](https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer.html)
- [MICE邂玲ウ募次逅<E6ACA1>(https://www.jstatsoft.org/article/view/v045i03)
### 蛹サ蟄ヲ遐皮ゥカ荳ュ逧<EFBDAD>シコ螟ア蛟シ螟<EFBDBC><E89E9F>?- 蝮<>€?荳ュ菴肴焚蝪ォ陦・<E999A6>壽怙蟶ク逕ィ<E98095>檎ョ€蜊募ソォ騾?- MICE<43>夐ォ倩エィ驥冗<E9A9A5>皮ゥカ鬥夜€会シ瑚€<E7919A>剔蜿倬㍼髣エ蜈ウ邉?- 蛻<><EFBFBD>。ォ陦・<E999A6>壻ク榊酔莠コ鄒、迚ケ蠕∝キョ蠑ょ、ァ譌カ菴ソ逕?
---
## 笨?蠑€蜿大燕遑ョ隶、貂<EFBDA4>
蟾イ遑ョ隶、莠矩。?笨<><EFBFBD>
- [x] **MICE蜉溯<E89C89><EFBFBD>。サ蠑€蜿?*<2A>亥現蟄ヲ遐皮ゥカ譬ク蠢<EFBDB8>怙豎ゑシ俄<EFBDBC>?- [x] **蝪ォ陦・譁ケ蠑擾シ壼<EFBDBC>蟒コ譁ー蛻?*<2A>井ソ晉蕗蜴溷ァ区焚謐ョ<E8AC90><EFBFBD>?- [x] **譁ー蛻嶺ス咲スョ<EFBDBD>夂エァ驍サ蜴溷<E89CB4>?*<2A>井セソ莠主ッケ豈秘ェ瑚ッ<E7919A>シ俄<EFBDBC>?- [x] **譌<>€謦、髞€蜉溯<E89C89>**<2A>亥次蟋区焚謐ョ譛ェ陲ォ菫ョ謾ケ<E8ACBE><EFBFBD>?- [x] UI隶セ隶。隨ヲ蜷磯「<E7A3AF><EFBFBD>?荳ェTab蛻<62><EFBFBD>俄怛
- [x] 蜉溯<E89C89><EFBFBD>峩蜷育炊<E882B2><E7828A>hase 1荳榊桁諡ャ蛻<EFBDAC><EFBFBD>。ォ陦・縲∵薯蛟シ遲会シ俄怛
- [x] 諤ァ閭ス隕∵アょ粋逅<E7B28B><EFBFBD>ICE 10荳<30><EFBFBD><60遘抵シ俄<EFBDBC>?- [x] 豬玖ッ慕畑萓句ョ梧紛<E6A2A7>?4荳ェ豬玖ッ慕畑萓具シ俄<EFBDBC>?- [x] 譌カ髣エ莨ー邂怜庄謗・蜿暦シ育コ?-4蟆乗慮<E4B997>俄怛
## <20>噫 蜃<><EFBFBD>€蟋句シ€蜿?
€譛臥。ョ隶、貂<EFBFBD>黒蟾イ螳梧<EFBFBD><EFBFBD>碁囂譌カ蜿ッ莉・蠑€蟋句ョ樊命<EFBFBD><EFBFBD>
---
## <20>統 譖エ譁ー隶ー蠖<EFBDB0>
### 2025-12-10 譖エ譁ー<E8AD81>育畑謌キ隕∵アゑシ<E38291>
**譁ー蠅槫粥閭ス**<2A>?1. 笨?**蜑榊髄/蜷主髄蝪ォ蜈<EFBDAB>刈蜈・譛ャ谺。蠑€蜿?*<2A>亥次隶。蛻貞惠Phase 2<>? - 蜑榊髄蝪ォ蜈<EFBDAB><EFBFBD>orward Fill<6C>会シ夂畑蜑堺ク€荳ェ髱樒シコ螟ア蛟シ蝪ォ蜈? - 蜷主髄蝪ォ蜈<EFBDAB><EFBFBD>ackward Fill<6C>会シ夂畑蜷惹ク€荳ェ髱樒シコ螟ア蛟シ蝪ォ蜈? - 騾ら畑蝨コ譎ッ<E8AD8E>壽慮髣エ蠎丞<E8A08E>謨ー謐ョ縲∵怏鬘コ蠎冗噪隗ょッ滓焚謐?
**蠖ア蜩<EFBDB1>**<2A>?- Tab 2譁ー蠅<EFBDB0>2荳ェ蝪ォ陦・騾蛾。ケ<EFBDA1><EFBFBD>6遘肴婿豕包シ<E58C85>
- Python蜃ス謨ー `fillna_simple` 譁ケ豕募盾謨ー譁ー蠅<EFBDB0> `'ffill'` 蜥?`'bfill'`
- 豬玖ッ慕畑萓倶サ?4荳ェ蠅槫刈蛻ー18荳?- 蠑€蜿第慮髣エ莉<EFBDB4>5-6蟆乗慮蠅槫刈蛻?-7蟆乗慮
**騾ら畑蝨コ譎ッ隸エ譏<EFBDB4>**<2A>?- 蝮<>€?荳ュ菴肴焚<E882B4>€ょ粋迢ャ遶玖ァょッ溽噪謨ー蛟シ蜿倬<E89CBF>?- 莨玲焚<E78EB2>€ょ粋蛻<E7B28B>アサ蜿倬㍼
- 蝗コ螳壼€<C280>夂畑謌キ閾ェ螳壻ケ牙惻譎?- **蜑榊髄蝪ォ蜈<EFBDAB>**<2A>夐囂隶ソ謨ー謐ョ<E8AC90>亥ヲょ、壽ャ。豬矩㍼<E79FA9>檎畑荳頑ャ。蛟シ蝪ォ蜈<EFBDAB><EFBFBD>
- **蜷主髄蝪ォ蜈<EFBDAB>**<2A>夐「<E5A490>オ区€ァ謨ー謐ョ<E8AC90>育畑譛ェ譚・蟾イ遏・蛟シ蝪ォ蜈<EFBDAB><EFBFBD>
- MICE<43>夐怙隕∬€<E288AC>剔蜿倬㍼髣エ蜈ウ邉サ逧<EFBDBB>ォ倩エィ驥丞。ォ陦?
---
### 2025-12-09 譖エ譁ー<E8AD81><EFBFBD>ケ謐ョ逕ィ謌キ遑ョ隶、<E99AB6><EFBDA4>
**譬ク蠢<EFBDB8>序譖エ**<2A>?1. 笨?**MICE蜉溯<E89C89><EFBFBD>。サ螳樒鴫**<2A>亥現蟄ヲ遐皮ゥカ譬ク蠢<EFBDB8>怙豎ゑシ<E38291>
2. 笨?**蝪ォ陦・譁ケ蠑乗隼荳コ蛻帛サコ譁ー蛻<EFBDB0>**<2A>井ソ晉蕗蜴溷ァ区焚謐ョ<E8AC90><EFBDAE>
3. 笨?**譁ー蛻嶺ス咲スョ<EFBDBD>夂エァ驍サ蜴溷<E89CB4>蜿ウ萓?*<2A>井セソ莠主ッケ豈秘ェ瑚ッ<E7919A><EFBFBD>
4. 笨?**蜿匁カ域彫髞€蜉溯<E89C89>**<2A>亥次蟋区焚謐ョ譛ェ陲ォ菫ョ謾ケ<E8ACBE>梧裏髴€謦、髞€<E9AB9E>?
**蠖ア蜩<EFBDB1>**<2A>?- Python蜃ス謨ー遲セ蜷肴眠蠅<E79CA0> `new_column_name` 蜿よ焚
- UI譁ー蠅<EFBDB0>"譁ー蛻怜<E89BBB>?霎灘<E99C8E>譯?- 螳樒鴫騾サ霎台スソ逕ィ `df.insert()` 遑ョ菫昜ス咲スョ豁」遑ョ
- 豬玖ッ慕畑萓区眠蠅樊眠蛻嶺ス咲スョ鬪瑚ッ<E7919A><EFBFBD>C-7, TC-8<>?- 蠑€蜿第慮髣エ莉<EFBDB4>3蟆乗慮蠅槫刈蛻?-6蟆乗慮<E4B997><E685AE>ICE+譁ー蛻鈴€サ霎托シ?
**莨伜漢**<2A>?- 笨?蜴溷ァ区焚謐ョ螳悟<E89EB3>菫晉蕗<E69989>梧焚謐ョ螳牙<E89EB3>諤ァ譖エ鬮?- 笨?譁ー譌ァ謨ー謐ョ蟷カ蛻玲仞遉コ<E98189>御セソ莠朱ェ瑚ッ∝。ォ陦・謨域<E8ACA8>?- 笨?逕ィ謌キ蜿ッ螟壽ャ。蟆晁ッ穂ク榊酔蝪ォ陦・譁ケ豕募ッケ豈?- 笨?隨ヲ蜷亥現蟄ヲ遐皮ゥカ逧<EFBDB6>ク・隹ィ諤ァ隕∵ア?
---
**蟾イ遑ョ隶、<E99AB6>悟㊥螟<E38AA5>€蟋句シ€蜿托シ<E68998>** <20>