[ja,ko,hi] chore(i18n): sync translations

Sync translations with latest source changes.
Languages: Japanese [ja], Korean [ko], Hindi [hi]
pull/798/head
localizeflow[bot] 4 days ago
parent bbef5d9925
commit 72641a23dc

@ -96,8 +96,8 @@
"language_code": "hi"
},
"2-Working-With-Data/07-python/README.md": {
"original_hash": "7bfec050f4717dcc2dfd028aca9d21f3",
"translation_date": "2025-09-06T15:32:04+00:00",
"original_hash": "fb29e3e0be486fe8f15d50bdade79eb1",
"translation_date": "2026-07-17T17:45:34+00:00",
"source_file": "2-Working-With-Data/07-python/README.md",
"language_code": "hi"
},

@ -1,60 +1,62 @@
# डेटा के साथ काम करना: Python और Pandas लाइब्रेरी
# डेटा के साथ काम करना: पायथन और पांडा लाइब्रेरी
| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) |
| ![ स्केचनोट द्वारा [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) |
| :-------------------------------------------------------------------------------------------------------: |
| Python के साथ काम करना - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
| पायथन के साथ काम करना - _स्केचनोट द्वारा [@nitya](https://twitter.com/nitya)_ |
[![Intro Video](../../../../translated_images/hi/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
[![प्रस्तावना वीडियो](../../../../translated_images/hi/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
हालांकि डेटाबेस डेटा को स्टोर करने और उन्हें क्वेरी लैंग्वेज का उपयोग करके क्वेरी करने के लिए बहुत प्रभावी तरीके प्रदान करते हैं, डेटा प्रोसेसिंग का सबसे लचीला तरीका अपना प्रोग्राम लिखना है। कई मामलों में, डेटाबेस क्वेरी करना अधिक प्रभावी हो सकता है। लेकिन कुछ मामलों में जब अधिक जटिल डेटा प्रोसेसिंग की आवश्यकता होती है, तो इसे SQL का उपयोग करके आसानी से नहीं किया जा सकता।
डेटा प्रोसेसिंग किसी भी प्रोग्रामिंग भाषा में की जा सकती है, लेकिन कुछ भाषाएँ डेटा के साथ काम करने के लिए उच्च स्तर की होती हैं। डेटा वैज्ञानिक आमतौर पर निम्नलिखित भाषाओं में से एक को प्राथमिकता देते हैं:
जबकि डेटाबेस डेटा संग्रहित करने और उन्हें क्वेरी भाषाओं के जरिए क्वेरी करने के लिए बहुत कुशल तरीके प्रदान करते हैं, डेटा प्रसंस्करण का सबसे लचीला तरीका अपना स्वयं का प्रोग्राम लिखना है। कई मामलों में, डेटाबेस क्वेरी करना अधिक प्रभावी तरीका होगा। हालांकि कुछ मामलों में जब अधिक जटिल डेटा प्रसंस्करण की आवश्यकता होती है, तो इसे आसानी से SQL के साथ नहीं किया जा सकता।
डेटा प्रसंस्करण किसी भी प्रोग्रामिंग भाषा में प्रोग्राम किया जा सकता है, लेकिन कुछ भाषाएँ डेटा के साथ काम करने के संदर्भ में उच्च स्तरीय हैं। डेटा वैज्ञानिक आमतौर पर निम्नलिखित भाषाओं में से किसी एक को पसंद करते हैं:
* **[Python](https://www.python.org/)**, एक सामान्य-उद्देश्य प्रोग्रामिंग भाषा, जिसे इसकी सरलता के कारण अक्सर शुरुआती लोगों के लिए सबसे अच्छा विकल्प माना जाता है। Python में कई अतिरिक्त लाइब्रेरी हैं जो आपको कई व्यावहारिक समस्याओं को हल करने में मदद कर सकती हैं, जैसे ZIP आर्काइव से डेटा निकालना या तस्वीर को ग्रेस्केल में बदलना। डेटा साइंस के अलावा, Python का उपयोग वेब डेवलपमेंट के लिए भी किया जाता है।
* **[R](https://www.r-project.org/)** एक पारंपरिक टूलबॉक्स है जिसे सांख्यिकीय डेटा प्रोसेसिंग के लिए विकसित किया गया है। इसमें लाइब्रेरी का बड़ा संग्रह (CRAN) है, जो इसे डेटा प्रोसेसिंग के लिए एक अच्छा विकल्प बनाता है। हालांकि, R एक सामान्य-उद्देश्य प्रोग्रामिंग भाषा नहीं है और इसे डेटा साइंस के क्षेत्र के बाहर शायद ही कभी उपयोग किया जाता है।
* **[Julia](https://julialang.org/)** एक अन्य भाषा है जो विशेष रूप से डेटा साइंस के लिए विकसित की गई है। इसे Python की तुलना में बेहतर प्रदर्शन देने के लिए डिज़ाइन किया गया है, जिससे यह वैज्ञानिक प्रयोगों के लिए एक बेहतरीन टूल बनता है।
* **[Python](https://www.python.org/)**, एक सर्व-उद्देश्यीय प्रोग्रामिंग भाषा, जिसे इसकी सरलता के कारण शुरुआती लोगों के लिए सर्वश्रेष्ठ विकल्पों में से एक माना जाता है। पायथन में कई अतिरिक्त लाइब्रेरीज़ हैं जो आपको कई व्यावहारिक समस्याओं को हल करने में मदद कर सकती हैं, जैसे ZIP आर्काइव से अपना डेटा निकालना, या चित्र को ग्रेस्केल में परिवर्तित करना। डेटा साइंस के अलावा, पायथन वेब विकास के लिए भी अक्सर उपयोग किया जाता है।
* **[R](https://www.r-project.org/)** एक पारंपरिक टूलबॉक्स है जो सांख्यिकीय डेटा प्रसंस्करण को ध्यान में रखकर विकसित किया गया है। इसमें बड़ी लाइब्रेरी रिपोजिटरी (CRAN) भी शामिल है, जो इसे डेटा प्रसंस्करण के लिए अच्छा विकल्प बनाती है। हालांकि, R एक सर्व-उद्देश्यीय प्रोग्रामिंग भाषा नहीं है और डेटा साइंस डोमेन के बाहर शायद ही कभी इस्तेमाल की जाती है।
* **[Julia](https://julialang.org/)** एक और भाषा है जो विशेष रूप से डेटा साइंस के लिए विकसित की गई है। इसका उद्देश्य पायथन की तुलना में बेहतर प्रदर्शन देना है, जिससे यह वैज्ञानिक प्रयोगों के लिए एक महान उपकरण है।
इस पाठ में, हम सरल डेटा प्रोसेसिंग के लिए Python का उपयोग करने पर ध्यान केंद्रित करेंगे। हम भाषा की बुनियादी जानकारी मानकर चलेंगे। यदि आप Python का गहन परिचय चाहते हैं, तो आप निम्नलिखित संसाधनों का उपयोग कर सकते हैं:
इस पाठ में, हम सरल डेटा प्रसंस्करण के लिए पायथन के उपयोग पर ध्यान केंद्रित करेंगे। हम भाषा की मूल परिचितता मानेंगे। यदि आप पायथन के गहरे परिचय चाहते हैं, तो आप निम्नलिखित संसाधनों में से किसी एक का संदर्भ ले सकते हैं:
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - Python प्रोग्रामिंग का GitHub-आधारित त्वरित परिचय कोर्स
* [Take your First Steps with Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn पर लर्निंग पाथ
* [कछुए ग्राफिक्स और फ्रैक्टल के साथ मजेदार तरीके से पायथन सीखें](https://github.com/shwars/pycourse) - पायथन प्रोग्रामिंग में जल्दी परिचय वाला GitHub आधारित कोर्स
* [पायथन के साथ अपने पहले कदम उठाएँ](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) पर लर्निंग पाथ
डेटा कई रूपों में आ सकता है। इस पाठ में, हम डेटा के तीन रूपों पर विचार करेंगे - **तालिका डेटा**, **पाठ** और **छवियाँ**।
डेटा कई रूपों में आ सकता है। इस पाठ में, हम तीन प्रकार के डेटा पर विचार करेंगे - **तालिकात्मक डेटा**, **पाठ्य** और **छवियाँ**।
हम संबंधित लाइब्रेरी का पूरा अवलोकन देने के बजाय डेटा प्रोसेसिंग के कुछ उदाहरणों पर ध्यान केंद्रित करेंगे। यह आपको यह समझने की अनुमति देगा कि क्या संभव है और जब आपको इसकी आवश्यकता हो तो अपनी समस्याओं के समाधान कहां से प्राप्त करें
हम डेटा प्रसंस्करण के कुछ उदाहरणों पर ध्यान केंद्रित करेंगे, बजाय सभी संबंधित लाइब्रेरीज़ का पूरा अवलोकन देने के। इससे आपको संभव चीजों का मुख्य विचार मिलेगा, और जब आपको जरूरत होगी, तब आप अपने समस्याओं के समाधान कहाँ खोजने हैं यह समझ पाएंगे
> **सबसे उपयोगी सलाह**। जब आपको डेटा पर कोई विशेष ऑपरेशन करने की आवश्यकता हो और आप नहीं जानते कि इसे कैसे करना है, तो इंटरनेट पर खोजने का प्रयास करें। [Stackoverflow](https://stackoverflow.com/) में अक्सर Python में कई सामान्य कार्यों के लिए उपयोगी कोड नमूने होते हैं।
> **सबसे उपयोगी सलाह**। जब आपको डेटा पर कोई विशिष्ट ऑपरेशन करना हो और आप न जानें कि कैसे करना है, तो इंटरनेट पर खोज करने की कोशिश करें। [Stackoverflow](https://stackoverflow.com/) आमतौर पर कई सामान्य कार्यों के लिए पायथन में उपयोगी कोड नमूने रखता है।
## [प्री-लेक्चर क्विज़](https://ff-quizzes.netlify.app/en/ds/quiz/12)
## तालिका डेटा और डेटा फ्रेम्स
आप पहले ही तालिका डेटा से परिचित हो चुके हैं जब हमने रिलेशनल डेटाबेस के बारे में बात की थी। जब आपके पास बहुत सारा डेटा होता है और यह कई अलग-अलग लिंक्ड टेबल्स में होता है, तो SQL का उपयोग करना निश्चित रूप से समझ में आता है। हालांकि, कई मामलों में हमारे पास डेटा की एक तालिका होती है और हमें इस डेटा के बारे में कुछ **समझ** या **अवलोकन** प्राप्त करने की आवश्यकता होती है, जैसे वितरण, मानों के बीच सहसंबंध आदि। डेटा साइंस में, कई बार हमें मूल डेटा के कुछ रूपांतरण करने की आवश्यकता होती है, उसके बाद विज़ुअलाइज़ेशन। ये दोनों चरण Python का उपयोग करके आसानी से किए जा सकते हैं।
## [पूर्व-व्याख्यान क्विज़](https://ff-quizzes.netlify.app/en/ds/quiz/12)
Python में तालिका डेटा से निपटने में मदद करने के लिए दो सबसे उपयोगी लाइब्रेरी हैं:
* **[Pandas](https://pandas.pydata.org/)** आपको तथाकथित **Dataframes** को हेरफेर करने की अनुमति देता है, जो रिलेशनल टेबल्स के समान होते हैं। आप नामित कॉलम रख सकते हैं और पंक्तियों, कॉलम और डेटा फ्रेम्स पर विभिन्न ऑपरेशन कर सकते हैं।
* **[Numpy](https://numpy.org/)** **टेंसर**, यानी बहु-आयामी **arrays** के साथ काम करने के लिए एक लाइब्रेरी है। Array में समान प्रकार के मान होते हैं और यह डेटा फ्रेम की तुलना में सरल होता है, लेकिन यह अधिक गणितीय ऑपरेशन प्रदान करता है और कम ओवरहेड बनाता है।
## तालिकात्मक डेटा और डाटाफ्रेम
कुछ अन्य लाइब्रेरी भी हैं जिन्हें आपको जानना चाहिए:
* **[Matplotlib](https://matplotlib.org/)** डेटा विज़ुअलाइज़ेशन और ग्राफ़ प्लॉटिंग के लिए उपयोग की जाने वाली लाइब्रेरी
* **[SciPy](https://www.scipy.org/)** कुछ अतिरिक्त वैज्ञानिक कार्यों वाली लाइब्रेरी। हमने पहले ही इस लाइब्रेरी का सामना किया है जब हमने संभावना और सांख्यिकी के बारे में बात की थी।
आपने तालिकात्मक डेटा से पहले ही परिचय लिया है जब हमने रिलेशनल डेटाबेस के बारे में बात की थी। जब आपके पास बहुत सारा डेटा होता है, और वह कई अलग-अलग जुड़े हुए टेबल्स में होता है, तो इसके साथ काम करने के लिए SQL का उपयोग करना निश्चित रूप से तर्कसंगत होता है। हालांकि, कई मामले ऐसे हैं जब हमारे पास केवल एक तालिका का डेटा होता है, और हमें इस डेटा के बारे में कुछ **समझ** या **जानकारी** प्राप्त करनी होती है, जैसे वितरण, मानों के बीच सहसंबंध आदि। डेटा साइंस में ऐसे कई मामले हैं जब हमें मूल डेटा का कुछ रूपांतरण करना होता है, उसके बाद विज़ुअलाइज़ेशन करना होता है। ये दोनों चरण पायथन का उपयोग करके आसानी से किए जा सकते हैं।
यहां एक कोड का टुकड़ा है जिसे आप आमतौर पर अपने Python प्रोग्राम की शुरुआत में इन लाइब्रेरी को आयात करने के लिए उपयोग करेंगे:
पायथन में दो सबसे उपयोगी लाइब्रेरीज़ हैं जो आपको तालिकात्मक डेटा से निपटने में मदद कर सकती हैं:
* **[Pandas](https://pandas.pydata.org/)** आपको तथाकथित **डाटाफ्रेम** को संभालने की अनुमति देती है, जो रिलेशनल टेबल्स के सामान होती हैं। आपके पास नामित कॉलम हो सकते हैं, और आप पंक्ति, कॉलम और डाटाफ्रेम के सामान्य रूप से विभिन्न ऑपरेशन कर सकते हैं।
* **[Numpy](https://numpy.org/)** एक लाइब्रेरी है **टेन्सर**, अर्थात् बहुआयामी **ऐरे** के साथ काम करने के लिए। ऐरे में समान मूल प्रकार के मान होते हैं, और यह डाटाफ्रेम की तुलना में सरल होता है, लेकिन यह अधिक गणितीय ऑपरेशन प्रदान करता है, और कम ओवरहेड बनाता है।
कुछ अन्य लाइब्रेरीज़ भी हैं जिनके बारे में आपको जानकारी होनी चाहिए:
* **[Matplotlib](https://matplotlib.org/)** डेटा विज़ुअलाइज़ेशन और ग्राफ़ बनाने के लिए इस्तेमाल की जाने वाली लाइब्रेरी है
* **[SciPy](https://www.scipy.org/)** कुछ अतिरिक्त वैज्ञानिक फ़ंक्शन वाली लाइब्रेरी है। हम इस लाइब्रेरी से पहले ही संभाव्यता और सांख्यिकी पर चर्चा करते हुए परिचित हो चुके हैं
यहाँ कोड का एक हिस्सा है जिसे आप आमतौर पर अपने पायथन प्रोग्राम की शुरुआत में इन लाइब्रेरीज़ को आयात करने के लिए उपयोग करेंगे:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
```
from scipy import ... # आपको सही उप-पैकेज निर्दिष्ट करने होंगे जिनकी आपको आवश्यकता है
```
Pandas कुछ बुनियादी अवधारणाओं के इर्द-गिर्द केंद्रित है।
पांडा कुछ मूलभूत अवधारणाओं के चारों ओर केंद्रित है।
### सीरीज़
**सीरीज़** मानों का एक अनुक्रम है, जो सूची या numpy array के समान है। मुख्य अंतर यह है कि सीरीज़ में एक **इंडेक्स** भी होता है, और जब हम सीरीज़ पर ऑपरेशन करते हैं (जैसे, उन्हें जोड़ते हैं), तो इंडेक्स को ध्यान में रखा जाता है। इंडेक्स उतना ही सरल हो सकता है जितना कि पूर्णांक पंक्ति संख्या (यह वह इंडेक्स है जिसका उपयोग सूची या array से सीरीज़ बनाते समय डिफ़ॉल्ट रूप से किया जाता है), या इसमें जटिल संरचना हो सकती है, जैसे कि तारीख अंतराल।
**सीरीज़** मानों का एक अनुक्रम है, जो सूची या numpy ऐरे के समान है। मुख्य अंतर यह है कि सीरीज़ के साथ एक **इंडेक्स** भी होता है, और जब हम सीरीज़ पर ऑपरेशन करते हैं (जैसे, उन्हें जोड़ना), तो इंडेक्स को ध्यान में रखा जाता है। इंडेक्स उतना ही सरल हो सकता है जितना पूर्णांक पंक्ति संख्या (यह डिफ़ॉल्ट इंडेक्स होता है जब सूची या ऐरे से सीरीज़ बनाते हैं), या यह जटिल संरचना हो सकती है, जैसे तारीख अंतराल।
> **ध्यान दें**: साथ में दिए गए नोटबुक [`notebook.ipynb`](notebook.ipynb) में कुछ प्रारंभिक Pandas कोड हैं। हम यहां केवल कुछ उदाहरणों को रेखांकित करते हैं, और आप निश्चित रूप से पूरे नोटबुक को देख सकते हैं।
> **नोट**: सहायक नोटबुक [`notebook.ipynb`](notebook.ipynb) में कुछ प्रारंभिक पांडा कोड दिया गया है। हम केवल कुछ उदाहरण यहाँ रेखांकित करते हैं, और आप निश्चित रूप से पूरी नोटबुक देख सकते हैं।
एक उदाहरण पर विचार करें: हम अपनी आइसक्रीम दुकान की बिक्री का विश्लेषण करना चाहते हैं। आइए कुछ समय अवधि के लिए बिक्री संख्या (प्रत्येक दिन बेची गई वस्तुओं की संख्या) की एक सीरीज़ बनाएं:
एक उदाहरण पर विचार करें: हम अपने आइस-क्रीम के स्थान की बिक्री का विश्लेषण करना चाहते हैं। आइए किसी समय अवधि के लिए बिक्री की संख्या (हर दिन बेचे गए आइटम की संख्या) की एक सीरीज़ बनाएं:
```python
start_date = "Jan 1, 2020"
@ -63,48 +65,48 @@ idx = pd.date_range(start_date,end_date)
print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()
```
![टाइम सीरीज़ प्लॉट](../../../../translated_images/hi/timeseries-1.80de678ab1cf727e.webp)
```
![समय सीरीज़ प्लॉट](../../../../translated_images/hi/timeseries-1.80de678ab1cf727e.webp)
अब मान लें कि हर सप्ताह हम दोस्तों के लिए एक पार्टी आयोजित कर रहे हैं और पार्टी के लिए अतिरिक्त 10 पैक आइसक्रीम लेते हैं। हम इसे दिखाने के लिए सप्ताह द्वारा इंडेक्स की गई एक और सीरीज़ बना सकते हैं:
अब मान लीजिए कि हर सप्ताह हम दोस्तों के लिए एक पार्टी का आयोजन करते हैं, और पार्टी के लिए अतिरिक्त 10 पैक आइस-क्रीम लेते हैं। हम एक और सीरीज बना सकते हैं, जो सप्ताह द्वारा अनुक्रमित है, ताकि इसे दर्शाया जा सके:
```python
additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))
```
जब हम दो सीरीज़ को जोड़ते हैं, तो हमें कुल संख्या मिलती है:
```
जब हम दो सीरीज़ जोड़ते हैं, तो हमें कुल संख्या मिलती है:
```python
total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()
```
![टाइम सीरीज़ प्लॉट](../../../../translated_images/hi/timeseries-2.aae51d575c55181c.webp)
```
![समय सीरीज़ प्लॉट](../../../../translated_images/hi/timeseries-2.aae51d575c55181c.webp)
> **ध्यान दें** कि हम साधारण सिंटैक्स `total_items+additional_items` का उपयोग नहीं कर रहे हैं। यदि हमने ऐसा किया होता, तो हमें परिणामी सीरीज़ में कई `NaN` (*Not a Number*) मान प्राप्त होते। ऐसा इसलिए है क्योंकि `additional_items` सीरीज़ में कुछ इंडेक्स पॉइंट्स के लिए मान गायब हैं, और किसी भी चीज़ में `NaN` जोड़ने से `NaN` मिलता है। इसलिए हमें जोड़ने के दौरान `fill_value` पैरामीटर निर्दिष्ट करने की आवश्यकता होती है
> **ध्यान दें** कि हम सरल सिंटैक्स `total_items+additional_items` का उपयोग नहीं कर रहे हैं। यदि हम ऐसा करते, तो हमें परिणामी सीरीज में कई `NaN` (*नॉट अ नंबर*) मान मिलते। इसका कारण यह है कि `additional_items` सीरीज़ में कुछ इंडेक्स बिंदुओं के लिए मान गायब हैं, और `NaN` में कुछ जोड़ने पर परिणाम `NaN` होता है। इसलिए हमें जोड़ते समय `fill_value` पैरामीटर निर्दिष्ट करना होगा
टाइम सीरीज़ के साथ, हम विभिन्न समय अंतरालों के साथ सीरीज़ को **पुन: नमूना** कर सकते हैं। उदाहरण के लिए, मान लें कि हम मासिक औसत बिक्री मात्रा की गणना करना चाहते हैं। हम निम्नलिखित कोड का उपयोग कर सकते हैं:
समय श्रृंखला के साथ, हम श्रृंखला को विभिन्न समय अंतरालों से भी **पुनः नमूने** कर सकते हैं। उदाहरण के लिए, मान लीजिए कि हम मासिक औसत बिक्री मात्रा की गणना करना चाहते हैं। हम निम्नलिखित कोड का उपयोग कर सकते हैं:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```
![मासिक टाइम सीरीज़ औसत](../../../../translated_images/hi/timeseries-3.f3147cbc8c624881.webp)
```
![मासिक समय श्रृंखला औसत](../../../../translated_images/hi/timeseries-3.f3147cbc8c624881.webp)
### डेटा फ्रेम
### डाटाफ्रेम
ेटा फ्रेम मूल रूप से समान इंडेक्स वाली कई सीरीज़ का संग्रह है। हम कई सीरीज़ को एक साथ डेटा फ्रेम में जोड़ सकते हैं:
ाटाफ्रेम मूल रूप से समान इंडेक्स वाली कई सीरिज़ का संग्रह होता है। हम कई सीरीज को एक साथ मिलाकर डाटाफ्रेम बना सकते हैं:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
यह इस तरह की एक क्षैतिज तालिका बनाएगा:
```
यह एक क्षैतिज तालिका बनाएगा इस प्रकार:
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | I | like | to | use | Python | and | Pandas | very | much |
हम सीरीज को कॉलम के रूप में भी उपयोग कर सकते हैं और डिक्शनरी का उपयोग करके कॉलम नाम निर्दिष्ट कर सकते हैं:
हम सीरीज को कॉलम के रूप में भी उपयोग कर सकते हैं, और शब्दकोश के जरिए कॉलम नाम निर्दिष्ट कर सकते हैं:
```python
df = pd.DataFrame({ 'A' : a, 'B' : b })
```
यह हमें इस तरह की एक तालिका देगा:
```
यह हमें इस प्रकार की तालिका देगा:
| | A | B |
| --- | --- | ------ |
@ -118,39 +120,39 @@ df = pd.DataFrame({ 'A' : a, 'B' : b })
| 7 | 8 | very |
| 8 | 9 | much |
**ध्यान दें** कि हम पिछले तालिका को ट्रांसपोज़ करके भी इस लेआउट को प्राप्त कर सकते हैं, जैसे कि लिखकर
**नोट** कि हम इस तालिका लेआउट को पिछली तालिका को ट्रांसपोज़ करके भी प्राप्त कर सकते हैं, जैसे लिखकर
```python
df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' })
```
यहा`.T` डेटा फ्रेम को ट्रांसपोज़ करने का ऑपरेशन है, यानी पंक्तियों और कॉलम को बदलना, और `rename` ऑपरेशन हमें कॉलम को पिछले उदाहरण से मेल खाने के लिए नाम बदलने की अनुमति देता है।
df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })
```
यहा`.T` डाटाफ्रेम को ट्रांसपोज़ करने का ऑपरेशन है, अर्थात् पंक्तियों और कॉलमों को बदलना, और `rename` ऑपरेशन हमें कॉलम का नाम पिछली उदाहरण के समान करने की अनुमति देता है।
यहां कुछ सबसे महत्वपूर्ण ऑपरेशन हैं जिन्हें हम डेटा फ्रेम्स पर कर सकते हैं:
यहां कुछ सबसे महत्वपूर्ण ऑपरेशन हैं जो हम डाटाफ्रेम पर कर सकते हैं:
**कॉलम चयन**। हम व्यक्तिगत कॉलम का चयन `df['A']` लिखकर कर सकते हैं - यह ऑपरेशन एक सीरीज़ लौटाता है। हम कॉलम के एक उपसमुच्चय को दूसरे डेटा फ्रेम में `df[['B','A']]` लिखकर भी चुन सकते हैं - यह एक और डेटा फ्रेम लौटाता है।
**कॉलम चयन**। हम `df['A']` लिखकर व्यक्तिगत कॉलम चुन सकते हैं - यह ऑपरेशन एक सीरीज़ लौटाता है। हम कॉलम के उपसमूह को दूसरे डाटाफ्रेम में भी चुन सकते हैं, जैसे `df[['B','A']]` लिखकर - यह दूसरा डाटाफ्रेम लौटाता है।
**केवल कुछ पंक्तियों को फ़िल्टर करना**। उदाहरण के लिए, कॉलम `A` के साथ केवल उन पंक्तियों को छोड़ने के लिए जो 5 से अधिक हैं, हम लिख सकते हैं `df[df['A']>5]`
केवल कुछ पंक्तियों को चुनना फ़िल्टरिंग है। उदाहरण के लिए, कॉलम `A` जहाँ मान 5 से बड़े हों, केवल वे पंक्तियां रखने के लिए हम लिख सकते हैं `df[df['A']>5]`
> **ध्यान दें**: फ़िल्टरिंग इस प्रकार काम करती है। अभिव्यक्ति `df['A']<5` एक बूलियन सीरीज़ लौटाती है, जो इंगित करती है कि मूल सीरीज़ `df['A']` के प्रत्येक तत्व के लिए अभिव्यक्ति `True` या `False` है। जब बूलियन सीरीज़ को इंडेक्स के रूप में उपयोग किया जाता है, तो यह डेटा फ्रेम में पंक्तियों का उपसमुच्चय लौटाती है। इसलिए किसी भी मनमाने Python बूलियन अभिव्यक्ति का उपयोग करना संभव नहीं है, उदाहरण के लिए, लिखना `df[df['A']>5 and df['A']<7]` गलत होगा। इसके बजाय, आपको बूलियन सीरीज़ पर विशेष `&` ऑपरेशन का उपयोग करना चाहिए, जैसे लिखना `df[(df['A']>5) & (df['A']<7)]` (*ब्रैकेट्स यहां महत्वपूर्ण हैं*)।
> **नोट**: फिल्टरिंग का तरीका यह है। अभिव्यक्ति `df['A']<5` एक बूलियन सीरीज़ लौटाती है, जो दिखाती है कि प्रत्येक तत्व के लिए यह अभिव्यक्ति `True` है या `False`। जब बूलियन सीरीज़ को इंडेक्स के रूप में उपयोग किया जाता है, तो यह डाटाफ्रेम में पंक्तियों का उपसमूह लौटाता है। इसलिए मनमाना पायथन बूलियन अभिव्यक्ति उपयोग करना संभव नहीं है, उदाहरण के लिए, `df[df['A']>5 and df['A']<7]` गलत होगा। इसके बजाय, आपको विशेष `&` ऑपरेशन का उपयोग करना चाहिए, जैसे `df[(df['A']>5) & (df['A']<7)]` (*कोष्ठक महत्वपूर्ण हैं*).
**नए गणनीय कॉलम बनाना**। हम अपने डेटा फ्रेम के लिए नए गणनीय कॉलम आसानी से बना सकते हैं, जैसे:
**नए गणनात्मक कॉलम बनाना**। हम सहज अभिव्यक्तियों का उपयोग करके अपने डाटाफ्रेम के लिए नए गणनात्मक कॉलम आसानी से बना सकते हैं:
```python
df['DivA'] = df['A']-df['A'].mean()
```
यह उदाहरण A के उसके औसत मान से विचलन की गणना करता है। यहां वास्तव में होता यह है कि हम एक सीरीज़ की गणना कर रहे हैं और फिर इस सीरीज़ को बाईं ओर असाइन कर रहे हैं, एक नया कॉलम बना रहे हैं। इसलिए, हम किसी भी ऑपरेशन का उपयोग नहीं कर सकते जो सीरीज़ के साथ संगत नहीं ह, उदाहरण के लिए, नीचे दिया गया कोड गलत है:
```
यह उदाहरण A के मध्य मान से विचलन की गणना करता है। वास्तव में यहां जो हो रहा है वह यह है कि हम एक सीरीज़ की गणना कर रहे हैं, और फिर इस सीरीज़ को बाएं तरफ असाइन कर रहे हैं, एक नया कॉलम बना रहे हैं। इसलिए, हम ऐसे ऑपरेशन का उपयोग नहीं कर सकते जो सीरीज़ के साथ संगत नहीं हों, उदाहरण के लिए, नीचे दिया गया कोड गलत है:
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi"
df['LenB'] = len(df['B']) # <- Wrong result
```
हालांकि यह उदाहरण सिंटैक्टिक रूप से सही है, यह हमें गलत परिणाम देता है क्योंकि यह कॉलम में सभी मानों को सीरीज `B` की लंबाई असाइन करता है, न कि व्यक्तिगत तत्वों की लंबाई जैसा कि हमने इरादा किया था।
# गलत कोड -> df['ADescr'] = "Low" यदि df['A'] < 5 "Hi"
df['LenB'] = len(df['B']) # <- ि
```
बाद वाला उदाहरण, यद्यपि सिन्टैक्टिक रूप से सही है, गलत परिणाम देता है, क्योंकि यह कॉलम में सभी मानों को सीरीज `B` की लंबाई असाइन करता है, न कि व्यक्तिगत तत्वों की लंबाई जैसा हमने सोचा था।
यदि हमें इस तरह के जटिल अभिव्यक्तियों की गणना करने की आवश्यकता है, तो हम `apply` फ़ंक्शन का उपयोग कर सकते हैं। अंतिम उदाहरण को निम्नलिखित रूप में लिखा जा सकता है:
यदि हमें इस तरह की जटिल अभिव्यक्तियाँ गणना करनी हों, तो हम `apply` फ़ंक्शन का उपयोग कर सकते हैं। अंतिम उदाहरण को इस प्रकार लिखा जा सकता है:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# या
df['LenB'] = df['B'].apply(len)
```
```
ऊपर दिए गए ऑपरेशन के बाद, हमारे पास निम्नलिखित डेटा फ्रेम होगा:
उपरोक्त ऑपरेशनों के बाद, हमारे पास निम्नलिखित डाटाफ्रेम होगा:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -164,22 +166,22 @@ df['LenB'] = df['B'].apply(len)
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**संख्या के आधार पर पंक्तियों का चयन करना** `iloc` निर्माण का उपयोग करके किया जा सकता है। उदाहरण के लिए, डेटा फ्रेम से पहली 5 पंक्तियों का चयन करने के लिए:
**संख्याओं के आधार पर पंक्तियाँ चुनना** `iloc` संरचना के उपयोग से किया जा सकता है। उदाहरण के लिए, डाटाफ्रेम से पहली 5 पंक्तियाँ चुनने के लिए:
```python
df.iloc[:5]
```
```
**समूह बनाना** अक्सर Excel में *पिवट टेबल्स* के समान परिणाम प्राप्त करने के लिए उपयोग किया जाता है। मान लें कि हम `LenB` की प्रत्येक संख्या के लिए कॉलम `A` का औसत मान गणना करना चाहते हैं। फिर हम अपने डेटा फ्रेम को `LenB` द्वारा समूहित कर सकते हैं और `mean` कॉल कर सकते हैं:
**ग्रुपिंग** अक्सर *पिवट टेबल* जैसा परिणाम प्राप्त करने के लिए की जाती है। मान लीजिए कि हम प्रत्येक `LenB` मान के लिए कॉलम `A` का औसत मान निकालना चाहते हैं। तब हम अपने डाटाफ्रेम को `LenB` के आधार पर समूहित कर सकते हैं, और `mean` कॉल कर सकते हैं:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
यदि हमें समूह में औसत और तत्वों की संख्या की गणना करनी है, तो हम अधिक जटिल `aggregate` फ़ंक्शन का उपयोग कर सकते हैं:
```
यदि हमें समूह में औसत और तत्वों की संख्या दोनों निकालनी हों, तो हम अधिक जटिल `aggregate` फ़ंक्शन का उपयोग कर सकते हैं:
```python
df.groupby(by='LenB') \
.aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
.rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})
```
यह हमें निम्नलिखित तालिका देता है:
```
यह हमें निम्न तालिका देता है:
| LenB | Count | Mean |
| ---- | ----- | -------- |
@ -190,92 +192,97 @@ df.groupby(by='LenB') \
| 6 | 2 | 6.000000 |
### डेटा प्राप्त करना
हमने देखा कि Python ऑब्जेक्ट्स से Series और DataFrames बनाना कितना आसान है। हालांकि, डेटा आमतौर पर टेक्स्ट फाइल या Excel टेबल के रूप में आता है। सौभाग्य से, Pandas हमें डिस्क से डेटा लोड करने का एक सरल तरीका प्रदान करता है। उदाहरण के लिए, CSV फाइल पढ़ना इतना आसान है:
हमने देखा है कि Python ऑब्जेक्ट्स से Series और DataFrames बनाना कितना आसान है। हालांकि, डेटा सामान्यतः एक टेक्स्ट फ़ाइल या Excel तालिका के रूप में आता है। सौभाग्य से, Pandas हमें डिस्क से डेटा लोड करने का एक सरल तरीका प्रदान करता है। उदाहरण के लिए, CSV फ़ाइल पढ़ना इस तरह सरल है:
```python
df = pd.read_csv('file.csv')
```
हम "Challenge" सेक्शन में डेटा लोड करने के और उदाहरण देखेंगे, जिसमें बाहरी वेबसाइटों से डेटा प्राप्त करना भी शामिल है।
हम "Challenge" सेक्शन में बाहरी वेब साइटों से डेटा प्राप्त करने सहित डेटा लोड करने के और उदाहरण देखेंगे
### प्रिंटिंग और प्लॉटिंग
एक डेटा वैज्ञानिक को अक्सर डेटा का विश्लेषण करना होता है, इसलिए इसे विज़ुअलाइज़ करने में सक्षम होना महत्वपूर्ण है। जब DataFrame बड़ा होता है, तो कई बार हम केवल यह सुनिश्चित करना चाहते हैं कि हम सब कुछ सही तरीके से कर रहे हैं, इसके लिए पहले कुछ पंक्तियों को प्रिंट करना उपयोगी होता है। इसे `df.head()` कॉल करके किया जा सकता है। यदि आप इसे Jupyter Notebook से चला रहे हैं, तो यह DataFrame को एक सुंदर टेबल के रूप में प्रिंट करेगा।
एक डेटा वैज्ञानिक को अक्सर डेटा का अन्वेषण करना होता है, इसलिए इसे विज़ुअलाइज़ करने में सक्षम होना महत्वपूर्ण है। जब DataFrame बड़ा होता है, तो कई बार हम केवल यह सुनिश्चित करना चाहते हैं कि हम सब कुछ सही कर रहे हैं, इसे पहली कुछ पंक्तियाँ प्रिंट करके। यह `df.head()` को कॉल करके किया जा सकता है। यदि आप इसे Jupyter Notebook से चला रहे हैं, तो यह DataFrame को एक सुंदर सारणीबद्ध रूप में प्रिंट करेगा।
हमने कुछ कॉलम को विज़ुअलाइज़ करने के लिए `plot` फ़ंक्शन का उपयोग भी देखा है। जबकि `plot` कई कार्यों के लिए बहुत उपयोगी है और `kind=` पैरामीटर के माध्यम से कई प्रकार के ग्राफ़ को सपोर्ट करता है, आप हमेशा कुछ अधिक जटिल प्लॉट करने के लिए raw `matplotlib` लाइब्रेरी का उपयोग कर सकते हैं। हम डेटा विज़ुअलाइज़ेशन को अलग पाठों में विस्तार से कवर करेंगे।
हमने कुछ स्तंभों को विज़ुअलाइज़ करने के लिए `plot` फ़ंक्शन का उपयोग भी देखा है। जबकि `plot` कई कार्यों के लिए बहुत उपयोगी है, और `kind=` पैरामीटर के माध्यम से कई ग्राफ़ प्रकारों का समर्थन करता है, आप हमेशा कुछ अधिक जटिल प्लॉट करने के लिए कच्ची `matplotlib` लाइब्रेरी का उपयोग कर सकते हैं। हम डेटा विज़ुअलाइज़ेशन को अलग कोर्स के अध्ययनों में विस्तार से कवर करेंगे।
यह अवलोकन Pandas के सबसे महत्वपूर्ण अवधारणाओं को कवर करता है, हालांकि, यह लाइब्रेरी बहुत समृद्ध है, और इसके साथ आप जो कर सकते हैं उसकी कोई सीमा नहीं है! अब चलिए इस ज्ञान का उपयोग करके एक विशिष्ट समस्या को हल करते हैं।
यह अवलोकन Pandas के सबसे महत्वपूर्ण अवधारणाओं को कवर करता है, हालांकि, यह लाइब्रेरी बहुत समृद्ध है, और आप इसके साथ जो कुछ भी कर सकते हैं उसकी कोई सीमा नहीं है! आइए अब इस ज्ञान को किसी विशिष्ट समस्या को हल करने के लिए लागू करें।
## 🚀 चैलेंज 1: COVID फैलाव का विश्लेषण
## 🚀 चुनौती 1: COVID फैलाव का विश्लेषण
पहली समस्या जिस पर हम ध्यान केंद्रित करेंगे वह है COVID-19 महामारी के फैलाव का मॉडलिंग। ऐसा करने के लिए, हम विभिन्न देशों में संक्रमित व्यक्तियों की संख्या पर डेटा का उपयोग करेंगे, जिसे [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) द्वारा [Johns Hopkins University](https://jhu.edu/) में प्रदान किया गया है। यह डेटा [इस GitHub Repository](https://github.com/CSSEGISandData/COVID-19) में उपलब्ध है।
पहली समस्या जिस पर हम ध्यान केंद्रित करेंगे वह COVID-19 के महामारी फैलाव का मॉडलिंग है। ऐसा करने के लिए, हम अलग-अलग देशों में संक्रमित व्यक्तियों की संख्या पर डेटा का उपयोग करेंगे, ज [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) द्वारा [Johns Hopkins University](https://jhu.edu/) में प्रदान किया गया है। डेटा सेट [इस GitHub रिपॉजिटरी](https://github.com/CSSEGISandData/COVID-19) में उपलब्ध है।
चूंकि हम दिखाना चाहते हैं कि डेटा के साथ कैसे काम किया जाए, हम आपको [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) खोलने और इसे ऊपर से नीचे तक पढ़ने के लिए आमंत्रित करते हैं। आप सेल्स को भी चला सकते हैं और अंत में छोड़े गए कुछ चैलेंज को हल कर सकते हैं।
चूंकि हम डेटा के साथ काम करने का तरीका दिखाना चाहते हैं, इसलिए हम आपको [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) खोलने और इसे ऊपर से नीचे तक पढ़ने के लिए आमंत्रित करते हैं। आप सेल भी निष्पादित कर सकते हैं, और कुछ चुनौतियां कर सकते हैं जो हमने अंत में आपके लिए छोड़ी हैं।
![COVID फैलाव](../../../../translated_images/hi/covidspread.f3d131c4f1d260ab.webp)
![COVID Spread](../../../../translated_images/hi/covidspread.f3d131c4f1d260ab.webp)
> यदि आपको Jupyter Notebook में कोड चलाने का तरीका नहीं पता है, तो [इस लेख](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) को देखें।
> यदि आप नहीं जानते कि Jupyter Notebook में कोड कैसे चलाएं, तो [इस लेख](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) को देखें।
## असंरचित डेटा के साथ काम करना
हालांकि डेटा अक्सर टेबल के रूप में आता है, कुछ मामलों में हमें कम संरचित डेटा के साथ काम करना पड़ता है, जैसे टेक्स्ट या इमेज। इस स्थिति में, ऊपर देखी गई डेटा प्रोसेसिंग तकनीकों को लागू करने के लिए, हमें किसी तरह **संरचित** डेटा निकालना होता है। यहां कुछ उदाहरण दिए गए हैं:
जबकि डेटा अक्सर सारणीबद्ध रूप में आता है, कुछ मामलों में हमें कम संरचित डेटा से निपटने की आवश्यकता होती है, जैसे टेक्स्ट या चित्र। इस मामले में, डेटा प्रोसेसिंग तकनीकों को लागू करने के लिए हमें कुछ तरह से संरचित डेटा **निकालना** होगा। यहाँ कुछ उदाहरण हैं:
* टेक्स्ट से कीवर्ड निकालना और यह देखना कि वे कितनी बार दिखाई देते हैं
* तस्वीर में वस्तुओं के बारे में जानकारी निकालने के लिए न्यूरल नेटवर्क का उपयोग करना
* वीडियो कैमरा फीड पर लोगों की भावनाओं की जानकारी प्राप्त करना
* टेक्स्ट से कीवर्ड निकालना, और देखना कि वे कीवर्ड कितनी बार प्रकट होते हैं
* चित्र पर वस्तुओं के बारे में जानकारी निकालने के लिए न्यूरल नेटवर्क्स का उपयोग करना
* वीडियो कैमरा फ़ीड पर लोगों के भावनाओं की जानकारी प्राप्त करना
## 🚀 चैलेंज 2: COVID पेपर्स का विश्लेषण
## 🚀 चुनौती 2: COVID पेपर्स का विश्लेषण
इस चैलेंज में, हम COVID महामारी के विषय को जारी रखेंगे और इस विषय पर वैज्ञानिक पेपर्स को प्रोसेस करने पर ध्यान केंद्रित करेंगे। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) में 7000 से अधिक (लेखन के समय) COVID पर पेपर्स उपलब्ध हैं, जिनमें मेटाडेटा और एब्स्ट्रैक्ट्स शामिल हैं (और लगभग आधे के लिए पूरा टेक्स्ट भी उपलब्ध है)।
इस चुनौती में, हम COVID महामारी के विषय पर वैज्ञानिक पेपर्स के प्रसंस्करण पर केंद्रित रहेंगे। वहाँ [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) है जिसमें COVID पर 7000 से अधिक पेपर्स (लेखन के समय) उपलब्ध हैं, मेटाडेटा और सारांश के साथ (और उनके आधे के लिए पूरी पाठ सामग्री भी प्रदान की गई है)।
इस डेटा सेट का विश्लेषण करने का एक पूर उदाहरण [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) कॉग्निटिव सर्विस का उपयोग करके [इस ब्लॉग पोस्ट](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) में वर्णित है। हम इस विश्लेषण का एक सरल संस्करण चर्चा करेंगे।
इस डेटासेट का विश्लेषण करने का एक पूर्ण उदाहरण [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) संज्ञानात्मक सेवा का उपयोग कर [इस ब्लॉग पोस्ट में वर्णित](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) है। हम इस विश्लेषण के सरल संस्करण पर चर्चा करेंगे।
> **NOTE**: हम इस रिपॉजिटरी के हिस्से के रूप में डेटा सेट की एक प्रति प्रदान नहीं करते हैं। आपको पहले [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) फाइल को [इस Kaggle डेटा सेट](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) से डाउनलोड करना पड़ सकता है। Kaggle पर पंजीकरण आवश्यक हो सकता है। आप बिना पंजीकरण के [यहां से](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) डेटा सेट डाउनलोड कर सकते हैं, लेकिन इसमें मेटाडेटा फाइल के अलावा सभी पूर्ण टेक्स्ट शामिल होंगे
> **NOTE**: हम इस रिपॉजिटरी का हिस्सा के रूप में डेटासेट की प्रति प्रदान नहीं करते हैं। आपको पहले [इस Kaggle डेटासेट](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) से [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) फ़ाइल डाउनलोड करनी पड़ सकती है। Kaggle पर पंजीकरण आवश्यक हो सकता है। आप बिना पंजीकरण के भी डेटासेट [यहाँ से](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) डाउनलोड कर सकते हैं, लेकिन यह मेटाडेटा फ़ाइल के अलावा सभी पूरी पाठ सामग्री भी शामिल होगी
[`notebook-papers.ipynb`](notebook-papers.ipynb) खोलें और इसे ऊपर से नीचे तक पढ़ें। आप सेल्स को भी चला सकते हैं और अंत में छोड़े गए कुछ चैलेंज को हल कर सकते हैं।
[`notebook-papers.ipynb`](notebook-papers.ipynb) खोलें और इसे ऊपर से नीचे तक पढ़ें। आप सेल निष्पादित भी कर सकते हैं, और कुछ चुनौतियां कर सकते हैं जो हमने अंत में आपके लिए छोड़ी हैं।
![Covid मेडिकल ट्रीटमेंट](../../../../translated_images/hi/covidtreat.b2ba59f57ca45fbc.webp)
![Covid Medical Treatment](../../../../translated_images/hi/covidtreat.b2ba59f57ca45fbc.webp)
## इमेज डेटा प्रोसेसिंग
## इमेज डेटा का प्रसंस्करण
हाल ही में, बहुत शक्तिशाली AI मॉडल विकसित किए गए हैं जो हमें इमेज को समझने की अनुमति देते हैं। कई कार्य हैं जिन्हें प्री-ट्रेंड न्यूरल नेटवर्क या क्लाउड सर्विसेज का उपयोग करके हल किया जा सकता है। कुछ उदाहरण शामिल हैं:
हाल ही में, बहुत शक्तिशाली AI मॉडल विकसित किए गए हैं जो हमें छवियों को समझने की अनुमति देते हैं। कई कार्य हैं जिन्हें प्री-ट्रेंड न्यूरल नेटवर्क या क्लाउड सेवाओं का उपयोग करके हल किया जा सकता है। कुछ उदाहरण निम्नलिखित हैं:
* **इमेज क्लासिफिकेशन**, जो आपको इमेज को प्री-डिफाइंड क्लासेस में वर्गीकृत करने में मदद कर सकता है। आप [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) जैसी सेवाओं का उपयोग करके आसानी से अपना इमेज क्लासिफायर ट्रेन कर सकते हैं।
* **ऑब्जेक्ट डिटेक्शन** इमेज में विभिन्न वस्तुओं का पता लगाने के लिए। [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) जैसी सेवाएं कई सामान्य वस्तुओं का पता लगा सकती हैं, और आप [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) मॉडल को कुछ विशिष्ट वस्तुओं का पता लगाने के लिए ट्रेन कर सकते हैं।
* **फेस डिटेक्शन**, जिसमें उम्र, लिंग और भावनाओं का पता लगाना शामिल है। इसे [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) के माध्यम से किया जा सकता है।
* **इमेज वर्गीकरण**, जो आपको छवि को पूर्व-परिभाषित वर्गों में से एक में वर्गीकृत करने में मदद कर सकता है। आप [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) जैसी सेवाओं का उपयोग करके आसानी से अपनी स्वयं की इमेज क्लासीफायर ट्रेन कर सकते हैं।
* **ऑब्जेक्ट डिटेक्शन** छवि में विभिन्न वस्तुओं का पता लगाने के लिए। [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) जैसी सेवाएं कई सामान्य वस्तुओं का पता लगा सकती हैं, और आप कुछ विशिष्ट इच्छित वस्तुओं का पता लगाने के लिए [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) मॉडल को प्रशिक्षित कर सकते हैं।
* **चेहरे का पता लगाना**, जिसमें आयु, लिंग और भावनाओं का पता लगाना शामिल है। यह [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) के माध्यम से किया जा सकता है।
इन सभी क्लाउड सेवाओं को [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके कॉल किया जा सकता है, और इस प्रकार इन्हें आपके डेटा एक्सप्लोरेशन वर्कफ़्लो में आसानी से शामिल किया जा सकता है।
ये सभी क्लाउड सेवाएं [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके बुलाई जा सकती हैं, और इसलिए इन्हें आपके डेटा अन्वेषण वर्कफ़्लो में आसानी से शामिल किया जा सकता है।
यहां इमेज डेटा स्रोतों से डेटा एक्सप्लोर करने के कुछ उदाहरण दिए गए हैं:
* ब्लॉग पोस्ट [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) में हम Instagram तस्वीरों का विश्लेषण करते हैं, यह समझने की कोशिश करते हैं कि कौन सी चीज़ें लोगों को तस्वीर पर अधिक लाइक्स देने के लिए प्रेरित करती हैं। हम पहले [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके तस्वीरों से अधिकतम जानकारी निकालते हैं, और फिर [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके एक व्याख्यात्मक मॉडल बनाते हैं।
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) में हम [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करते हैं ताकि इवेंट्स की तस्वीरों में लोगों की भावनाओं को निकाला जा सके, यह समझने के लिए कि कौन सी चीज़ें लोगों को खुश करती हैं
इमेज डेटा स्रोतों से डेटा अन्वेषण के कुछ उदाहरण यहाँ दिए गए हैं:
* ब्लॉग पोस्ट [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) में हम इंस्टाग्राम फ़ोटो का विश्लेषण करते हैं, यह समझने की कोशिश करते हैं कि लोग किन कारणों से किसी फ़ोटो को अधिक लाइक देते हैं। हम पहले [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके तस्वीरों से अधिकतम जानकारी निकालते हैं, और फिर [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके व्याख्यात्मक मॉडल बनाते हैं।
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) में हम [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) का उपयोग करके घटनाओं से लोगों की तस्वीरों में भावनाओं को निकालते हैं, ताकि यह समझा जा सके कि क्या लोगों को खुश करता है
## निष्कर्ष
चाहे आपके पास संरचित या असंरचित डेटा हो, Python का उपयोग करके आप डेटा प्रोसेसिंग और समझने से संबंधित सभी चरणों को कर सकते हैं। यह डेटा प्रोसेसिंग का सबसे लचीला तरीका है, और यही कारण है कि अधिकांश डेटा वैज्ञानिक Python को अपना प्राथमिक उपकरण मानते हैं। यदि आप अपने डेटा साइंस यात्रा को गंभीरता से लेना चाहते हैं, तो Python को गहराई से सीखना एक अच्छा विचार हो सकता है!
चाहे आपके पास पहले से संरचित हो या असंरचित डेटा हो, Python का उपयोग करके आप डेटा प्रोसेसिंग और समझ से संबंधित सभी चरणों को कर सकते हैं। यह शायद डेटा प्रोसेसिंग का सबसे लचीला तरीका है, और यही कारण है कि अधिकांश डेटा वैज्ञानिक Python को अपना प्राथमिक उपकरण मानते हैं। यदि आप अपनी डेटा साइंस यात्रा के प्रति गंभीर हैं, तो Python को गहराई से सीखना शायद अच्छा विचार है!
## [ोस्ट-लेक्चर क्विज़](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## [ाठ के बाद क्विज़](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## समीक्षा और स्व-अध्ययन
## समीक्षा एवं स्व-अध्ययन
**पुस्तकें**
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
**ऑनलाइन संसाधन**
* आधिकारिक [10 मिनट में Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) ट्यूटोरियल
* [Pandas विज़ुअलाइज़ेशन पर दस्तावेज़](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
* आधिकारिक [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) ट्यूटोरियल
* [Pandas विज़ुअलाइज़ेशन के लिए डॉक्युमेंटेशन](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Python सीखना**
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse)
* [Python के साथ अपने पहले कदम उठाएं](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn पर लर्निंग पाथ
* [Turtle Graphics और Fractals के साथ मज़ेदार तरीके से Python सीखें](https://github.com/shwars/pycourse)
* [Python के साथ अपनी पहली कदम उठाएं](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) पर सीखने का मार्ग
## असाइनमेंट
[ऊपर दिए गए चैलेंज के लिए अधिक विस्तृत डेटा अध्ययन करें](assignment.md)
[ऊपर दी गई चुनौतियों के लिए और विस्तार से डेटा अध्ययन करें](assignment.md)
## क्रेडिट्स
## क्रेडिट
यह पाठ [Dmitry Soshnikov](http://soshnikov.com) द्वारा ♥️ के साथ लिखा गया है
इस पाठ को ♥️ के साथ [Dmitry Soshnikov](http://soshnikov.com) द्वारा लिखा गया है
---
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
इस दस्तावेज़ का अनुवाद AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में ही प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -96,8 +96,8 @@
"language_code": "ja"
},
"2-Working-With-Data/07-python/README.md": {
"original_hash": "7bfec050f4717dcc2dfd028aca9d21f3",
"translation_date": "2025-09-06T15:30:09+00:00",
"original_hash": "fb29e3e0be486fe8f15d50bdade79eb1",
"translation_date": "2026-07-17T17:42:36+00:00",
"source_file": "2-Working-With-Data/07-python/README.md",
"language_code": "ja"
},

@ -1,60 +1,62 @@
# データの操作: PythonとPandasライブラリ
# データの操作Python と Pandas ライブラリ
| ![ [(@sketchthedocs)](https://sketchthedocs.dev) によるスケッチノート ](../../sketchnotes/07-WorkWithPython.png) |
| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) |
| :-------------------------------------------------------------------------------------------------------: |
| Pythonでの操作 - _[@nitya](https://twitter.com/nitya) によるスケッチノート_ |
| Working With Python - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
[![イントロ動画](../../../../translated_images/ja/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
[![Intro Video](../../../../translated_images/ja/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
データベースはデータを効率的に保存し、クエリ言語を使用して検索する方法を提供しますが、データ処理の最も柔軟な方法は、自分自身でプログラムを書いてデータを操作することです。多くの場合、データベースクエリを使用する方が効果的です。しかし、より複雑なデータ処理が必要な場合、SQLでは簡単に実現できないことがあります。
データ処理はどのプログラミング言語でもプログラム可能ですが、データ操作に特化した高レベルな言語があります。データサイエンティストは通常、以下の言語のいずれかを好みます:
データベースはデータの格納とクエリ言語での問い合わせに非常に効率的な方法を提供しますが、最も柔軟なデータ処理方法は自分でプログラムを書いてデータを操作することです。多くの場合、データベースクエリを使う方が効果的ですが、より複雑なデータ処理が必要な場合は、SQLでは簡単にできないこともあります。
データ処理はどのプログラミング言語でも可能ですが、データ操作に関してより高レベルな言語があります。データサイエンティストは一般的に以下の言語のいずれかを好みます:
* **[Python](https://www.python.org/)**: 汎用プログラミング言語であり、そのシンプルさから初心者に最適とされています。Pythonには多くの追加ライブラリがあり、ZIPアーカイブからデータを抽出したり、画像をグレースケールに変換したりといった実用的な問題を解決できます。データサイエンスだけでなく、ウェブ開発にもよく使用されます。
* **[R](https://www.r-project.org/)**: 統計データ処理を目的に開発された伝統的なツールボックスです。大規模なライブラリリポジトリCRANを含んでおり、データ処理に適しています。ただし、Rは汎用プログラミング言語ではなく、データサイエンス以外の分野ではあまり使用されません
* **[Julia](https://julialang.org/)**: データサイエンス専用に開発された言語で、Pythonよりも高いパフォーマンスを提供することを目的としています。科学的な実験に適したツールです。
* **[Python](https://www.python.org/)** は汎用プログラミング言語で、そのシンプルさから初心者にとって最良の選択肢の一つとされています。PythonにはZIPアーカイブからのデータ抽出や画像のグレースケール変換など、多くの実用的な問題解決に役立つ追加ライブラリが多数あります。データサイエンスのほかに、Web開発にもよく使われています。
* **[R](https://www.r-project.org/)** は統計データ処理を念頭に開発された伝統的なツールボックスです。CRANと呼ばれる多くのライブラリも備え、データ処理に適しています。しかしRは汎用プログラミング言語ではなく、データサイエンス領域以外で使われることは稀です
* **[Julia](https://julialang.org/)** はデータサイエンス専用に開発された別の言語で、Pythonよりも高い性能を目指しており、科学的実験に適したツールです。
このレッスンでは、Pythonを使用した簡単なデータ処理に焦点を当てます。Pythonの基本的な知識があることを前提とします。Pythonをより深く学びたい場合は、以下のリソースを参照してください:
このレッスンでは、簡単なデータ処理のためにPythonを使うことに焦点を当てます。言語の基本的な知識があることを前提とします。Pythonのより深い学習を希望する場合は、以下のリソースを参照してください
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - PythonプログラミングのGitHubベースの簡易入門コース
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - GitHub上のPythonプログラミングのクイックイントロコース
* [Take your First Steps with Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) の学習パス
データはさまざまな形式で存在します。このレッスンでは、**表形式データ**、**テキスト**、**画像**の3つの形式を考えます。
データはさまざまな形態があります。このレッスンでは、<strong>表形式データ</strong><strong>テキスト</strong><strong>画像</strong>の三つのデータ形式について考えます。
関連するすべてのライブラリの概要を提供するのではなく、いくつかのデータ処理の例に焦点を当てます。これにより、可能性の主なアイデアを理解し、必要なときに問題の解決策を見つける方法を学ぶことができます。
関連するすべてのライブラリの完全な概要を提供する代わりに、いくつかのデータ処理の例に焦点を当てます。これにより、可能なことの全体像を掴み、問題解決のためのソリューションを見つける場所を理解しやすくします。
> **最も役立つアドバイス**: データに対して特定の操作を行う必要があるが方法がわからない場合、インターネットで検索してみてください。[Stackoverflow](https://stackoverflow.com/) には、Pythonでの典型的なタスクに関する有用なコードサンプルが多数掲載されています。
> <strong>最も有用なアドバイス</strong>:データに対してある操作を行いたいが方法がわからない場合は、インターネットで検索してみてください。[Stackoverflow](https://stackoverflow.com/) には多くの典型的なタスクに対するPythonの有用なコード例が掲載されています。
## [講義前のクイズ](https://ff-quizzes.netlify.app/en/ds/quiz/12)
## [講義前クイズ](https://ff-quizzes.netlify.app/en/ds/quiz/12)
## 表形式データとデータフレーム
リレーショナルデータベースについて話した際に、表形式データにすでに触れました。大量のデータがあり、それが多くの異なるリンクされたテーブルに含まれている場合、SQLを使用して操作するのが理にかなっています。しかし、データの分布や値間の相関など、このデータについての**理解**や**洞察**を得る必要がある場合があります。データサイエンスでは、元のデータの変換とその後の可視化を行う必要があるケースが多くあります。これらのステップはPythonを使用して簡単に実行できます。
関係データベースについて話したとき、すでに表形式データを扱いました。大量のデータがあり、複数の関連テーブルに分かれている場合は、SQLを使うのが賢明です。しかし、データの分布や値同士の相関関係など、そのデータについて何らかの<strong>理解</strong><strong>洞察</strong>を得たい場合が多々あります。データサイエンスでは、元のデータの変換を行い、その後に可視化するケースが多くありますが、この両方のステップはPythonで簡単にできます。
Pythonで表形式データを扱う際に役立つ最も重要なライブラリは以下の2つです:
* **[Pandas](https://pandas.pydata.org/)**: **データフレーム**を操作するためのライブラリで、リレーショナルテーブルに類似しています。名前付きの列を持ち、行、列、データフレーム全体に対してさまざまな操作を実行できます。
* **[Numpy](https://numpy.org/)**: **テンソル**、つまり多次元**配列**を操作するためのライブラリです。配列は同じ基礎型の値を持ち、データフレームよりもシンプルですが、より多くの数学的操作を提供し、オーバーヘッドが少なくなります。
Pythonで表形式データを扱うのに役立つ最も有用なライブラリは以下の二つです:
* **[Pandas](https://pandas.pydata.org/)** は、いわゆる<strong>データフレーム</strong>を操作するためのライブラリです。データフレームは関係データベースのテーブルと類似しており、名前付きのカラムを持ち、行やカラム、データフレーム全体に対してさまざまな操作が行えます。
* **[Numpy](https://numpy.org/)**<strong>テンソル</strong>、つまり多次元の<strong>配列</strong>を扱うライブラリです。配列は同じ基本型の値を持ち、データフレームより単純ですが、より多くの数学的演算を提供し、オーバーヘッドが少ないです。
また、知っておくべきライブラリがいくつかあります:
* **[Matplotlib](https://matplotlib.org/)**: データの可視化やグラフのプロットに使用されるライブラリ
* **[SciPy](https://www.scipy.org/)**: 追加の科学的関数を含むライブラリ。確率と統計について話した際にすでにこのライブラリに触れました
他にも知っておくべきライブラリがいくつかあります:
* **[Matplotlib](https://matplotlib.org/)** はデータの可視化やグラフの描画に使われるライブラリです。
* **[SciPy](https://www.scipy.org/)** は追加の科学計算用関数を含むライブラリです。確率や統計の話で既に触れました。
以下は、Pythonプログラムの冒頭でこれらのライブラリをインポートする際に通常使用されるコードの一例です:
これらのライブラリをPythonプログラムの冒頭でインポートする場合、通常は次のように書きます
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
from scipy import ... # 必要なサブパッケージを正確に指定する必要があります
```
Pandasはいくつかの基本的な概念を中心に構築されています。
Pandasはいくつかの基本概念に基づいています。
### Series
### Series(シリーズ)
**Series**は、リストやnumpy配列に似た値のシーケンスです。主な違いは、Seriesには**インデックス**があり、Seriesを操作する際例: 加算する際にインデックスが考慮されることです。インデックスは単純な整数行番号リストや配列からSeriesを作成する際のデフォルトインデックスである場合もあれば、日付間隔のような複雑な構造を持つ場合もあります。
**Series** は、リストやnumpyの配列に似た値の列ですが、大きな違いは<strong>インデックス</strong>を持つことです。シリーズ同士の演算(例えば加算)では、このインデックスが考慮されます。インデックスは単純な整数の行番号(リストや配列からシリーズを作るときにデフォルトで使われます)であったり、日付の区間など複雑な構造を持つこともあります。
> **注意**: 付属のノートブック [`notebook.ipynb`](notebook.ipynb) にPandasの入門コードが含まれています。ここではいくつかの例を簡単に説明しますが、ぜひ完全なートブックを確認してください。
> <strong></strong>: 同梱のノートブック [`notebook.ipynb`](notebook.ipynb) に導入用のPandasコードがいくつかあります。ここでは一部の例だけを取り上げており、ぜひ完全なートブックもご覧ください。
例を考えてみましょう: アイスクリームショップの売上を分析したいとします。一定期間の売上数各日販売されたアイテム数のSeriesを生成します:
例を考えます。アイスクリーム店の売上分析を行いたいとします。ある期間の日ごとの販売数(販売アイテム数)のシリーズを作成します:
```python
start_date = "Jan 1, 2020"
@ -64,47 +66,47 @@ print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()
```
![時系列プロット](../../../../translated_images/ja/timeseries-1.80de678ab1cf727e.webp)
![Time Series Plot](../../../../translated_images/ja/timeseries-1.80de678ab1cf727e.webp)
次に、毎週友人のためにパーティーを開催し、パーティー用にアイスクリームを10パック追加で購入するとします。これを示すために、週ごとにインデックス付けされた別のSeriesを作成できます:
次に、毎週友人たちとパーティを行い、パーティ用に追加で10パックのアイスクリームを持っていくことにしたとします。これを週単位のインデックスで別のシリーズとして作成します
```python
additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))
```
2つのSeriesを加算すると、合計数が得られます:
二つのシリーズを足し合わせると合計の売上数が得られます:
```python
total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()
```
![時系列プロット](../../../../translated_images/ja/timeseries-2.aae51d575c55181c.webp)
![Time Series Plot](../../../../translated_images/ja/timeseries-2.aae51d575c55181c.webp)
> **注意**: 単純な構文 `total_items+additional_items` を使用していないことに注意してください。この場合、結果のSeriesに多くの`NaN`*Not a Number*)値が含まれることになります。これは、`additional_items` Seriesのインデックスポイントの一部に欠損値があり、`NaN`を加算すると結果が`NaN`になるためです。そのため、加算時に`fill_value`パラメータを指定する必要があります。
> <strong></strong>:単純に `total_items+additional_items` のように書くのではありません。そうすると、多くの `NaN`*Not a Number*)が結果のシリーズに現れます。これは、`additional_items` のいくつかのインデックスに値が欠落しており、`NaN` と何かを足すと `NaN` になるためです。したがって、加算時に `fill_value` パラメータを指定する必要があります。
時系列データでは、異なる時間間隔でSeriesを**リサンプリング**することもできます。たとえば、月ごとの平均売上量を計算したい場合、以下のコードを使用できます:
時系列データでは、異なる時間間隔で<strong>リサンプリング</strong>することもできます。例えば、毎月の平均売上高を計算したい場合は、次のようにします:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```
![月次時系列平均](../../../../translated_images/ja/timeseries-3.f3147cbc8c624881.webp)
![Monthly Time Series Averages](../../../../translated_images/ja/timeseries-3.f3147cbc8c624881.webp)
### DataFrame
### DataFrame(データフレーム)
DataFrameは、同じインデックスを持つ複数のSeriesのコレクションです。複数のSeriesを組み合わせてDataFrameを作成できます:
DataFrameは、共通のインデックスを持つ複数のシリーズの集合体と考えられます。複数のシリーズを組み合わせてデータフレームにできます:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
これにより、以下のような横方向のテーブルが作成されます:
これにより、次のような横方向の表が作成されます:
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | I | like | to | use | Python | and | Pandas | very | much |
また、Seriesを列として使用し、辞書を使用して列名を指定することもできます:
シリーズをカラムとして使い、辞書でカラム名を指定することもできます:
```python
df = pd.DataFrame({ 'A' : a, 'B' : b })
```
これにより、以下のようなテーブルが得られます:
これにより、次のような表が得られます:
| | A | B |
| --- | --- | ------ |
@ -118,39 +120,39 @@ df = pd.DataFrame({ 'A' : a, 'B' : b })
| 7 | 8 | very |
| 8 | 9 | much |
**注意**: 前のテーブルを転置することで、このテーブルレイアウトを得ることもできます。例えば、以下のように書くことで:
<strong></strong>:先の表を転置し(`.T`)、`rename` 操作でカラム名を変更することでも同じ配置が得られます。
```python
df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' })
df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })
```
ここで`.T`はDataFrameを転置する操作を意味し、`rename`操作を使用して列名を前の例に一致させることができます。
`.T` はデータフレームの転置操作(行と列の入れ替え)を意味し、`rename` 操作で先ほどの例に合わせてカラム名を変更しています。
DataFrameで実行できる最も重要な操作をいくつか紹介します:
データフレームで行える最も重要な操作をいくつか紹介します:
**列の選択**: `df['A']`と書くことで個々の列を選択できます。この操作はSeriesを返します。また、`df[['B','A']]`と書くことで列のサブセットを別のDataFrameに選択できます。
<strong>カラム選択</strong>`df['A']` と書くと、個別のカラムを選択できます。この操作はシリーズを返します。カラムのサブセットを選び別のデータフレームにするには、`df[['B','A']]` と書きます。これにより別のデータフレームが返されます。
**条件に基づく行のフィルタリング**: 例えば、列`A`が5より大きい行のみを残すには、`df[df['A']>5]`と書きます。
<strong>フィルタリング</strong>:ある条件で行を絞り込みます。例えば、カラム `A` が5より大きい行だけ残すには、`df[df['A']>5]` と書きます。
> **注意**: フィルタリングの仕組みは次の通りです。式`df['A']<5`はブールSeriesを返し、元のSeries`df['A']`の各要素に対して式が`True`または`False`であるかを示します。ブールSeriesがインデックスとして使用されると、DataFrameの行のサブセットが返されます。そのため、任意のPythonブール式を使用することはできません。例えば、`df[df['A']>5 and df['A']<7]`と書くのは間違いです。代わりに、ブールSeriesに対して特別な`&`操作を使用し、`df[(df['A']>5) & (df['A']<7)]`と書く必要があります(*括弧が重要です*)。
> <strong></strong>:フィルタリングの仕組みはこうです。`df['A']<5` はブール値のシリーズを返し、元のシリーズ `df['A']` の各要素が条件を満たすかどうかを示します。このブールシリーズをインデックスとして使うと、条件に合う行のサブセットが返されます。したがって、`df[df['A']>5 and df['A']<7]` のような任意のPythonブール式は使えません。その代わりに、ブールシリーズ同士を `&` で結合し、`df[(df['A']>5) & (df['A']<7)]` とします(<em>括弧は重要です</em>)。
**計算可能な新しい列の作成**: 直感的な式を使用してDataFrameに新しい計算可能な列を簡単に作成できます:
<strong>新しい計算カラムの作成</strong>:計算可能な新しいカラムは、次のような直感的な式で簡単に作成できます:
```python
df['DivA'] = df['A']-df['A'].mean()
```
この例では、列Aの平均値からの乖離を計算しています。ここで実際に行われているのは、Seriesを計算し、それを左辺に割り当てて新しい列を作成することです。そのため、Seriesと互換性のない操作は使用できません。例えば、以下のコードは間違っています:
この例は、Aの各値が平均値からどれだけ離れているか偏差を計算しています。ここで実際に行われているのは、シリーズが計算され、そのシリーズを左辺に代入して新しいカラムを作成することです。したがって、シリーズに適さない操作は使えません。例えば、次のコードは誤りです
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi"
df['LenB'] = len(df['B']) # <- Wrong result
# 間違ったコード -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi"
df['LenB'] = len(df['B']) # <-
```
後者の例は構文的には正しいですが、意図した個々の要素の長さではなく、Series`B`の長さをすべての値に割り当ててしまうため、誤った結果を返します。
この例は文法的には正しいですが、誤った結果を返します。なぜなら、シリーズ `B` の長さをすべての値に割り当ててしまい、各要素の長さではないからです。
このような複雑な式を計算する必要がある場合は、`apply`関数を使用できます。最後の例は次のように書き換えることができます:
複雑な計算式が必要な場合は、`apply` 関数を使うことができます。上記の最後の例は次のように書けます:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# または
df['LenB'] = df['B'].apply(len)
```
上記の操作後、以下のDataFrameが得られます:
これらの操作の後、次のようなデータフレームが完成します:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -164,22 +166,22 @@ df['LenB'] = df['B'].apply(len)
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**行番号に基づく選択**は`iloc`構文を使用して行うことができます。例えば、DataFrameの最初の5行を選択するには:
<strong>数値ベースの行選択</strong>`iloc` 構文を使って行えます。例えば、最初の5行を選択するには
```python
df.iloc[:5]
```
**グループ化**は、Excelの*ピボットテーブル*に似た結果を得るためによく使用されます。例えば、`LenB`の各値に対して列`A`の平均値を計算したい場合、DataFrameを`LenB`でグループ化し、`mean`を呼び出します:
<strong>グルーピング</strong> はExcelのピボットテーブルに似た結果を得るためによく使います。例えば、`LenB` ごとにカラム `A` の平均値を計算したい場合、`LenB` でグループ化し、`mean` を呼び出します:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
グループ内の平均値と要素数を計算する必要がある場合は、より複雑な`aggregate`関数を使用できます:
平均値とグループ内の要素数の両方を計算したい場合は、より複雑な `aggregate` 関数を使えます:
```python
df.groupby(by='LenB') \
.aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
.rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})
```
これにより、以下のテーブルが得られます:
これにより次の表が得られます:
| LenB | Count | Mean |
| ---- | ----- | -------- |
@ -190,92 +192,97 @@ df.groupby(by='LenB') \
| 6 | 2 | 6.000000 |
### データの取得
PythonオブジェクトからSeriesやDataFrameを構築するのがいかに簡単かを見てきました。しかし、データは通常、テキストファイルやExcelテーブルの形式で提供されます。幸いなことに、Pandasはディスクからデータを読み込むための簡単な方法を提供しています。例えば、CSVファイルを読み込むのは以下のように簡単です
PythonオブジェクトからSeriesやDataFrameを簡単に構築できることを見てきました。しかし、データは通常テキストファイルやExcelの表形式で提供されます。幸いなことに、Pandasはディスクからデータを読み込む簡単な方法を提供しています。例えば、CSVファイルを読み込むのは以下のように非常に簡単です
```python
df = pd.read_csv('file.csv')
```
「チャレンジ」セクションでは、外部ウェブサイトからデータを取得する例を含め、データの読み込みについてさらに詳しく見ていきます。
「Challenge」セクションでは、データを読み込む他の例や外部ウェブサイトからの取得方法についても見ていきます。
### データの表示とプロット
### 印刷とプロット
データサイエンティストはデータを探索する必要があるため、データを視覚化することが重要です。DataFrameが大きい場合、最初の数行を表示してすべてが正しく動作していることを確認したいことがよくあります。これには`df.head()`を呼び出すことで対応できます。Jupyter Notebookで実行している場合、DataFrameがきれいな表形式で表示されます。
データサイエンティストはデータを探索することが多いため、その可視化が重要です。DataFrameが大きい場合、多くの場合は正しく処理できているかを確認するために最初の数行だけを表示したいことがあります。これは`df.head()`を呼び出すことで実現できます。Jupyter Notebook上で実行すると、DataFrameが見やすい表形式で表示されます。
また、いくつかの列を視覚化するために`plot`関数を使用する方法も見てきました。`plot`は多くのタスクに非常に便利で、`kind=`パラメータを使用してさまざまなグラフタイプをサポートしていますが、より複雑なものをプロットしたい場合は、`matplotlib`ライブラリを直接使用することもできます。データの視覚化については、別のコースレッスンで詳しく説明します。
また、特定の列を可視化するために`plot`関数の使用例も見てきました。`plot`は多くのタスクで非常に便利であり、`kind=`パラメーターを使って多様なグラフタイプをサポートしていますが、より複雑なプロットが必要な場合は生の`matplotlib`ライブラリを使うこともできます。データ可視化については別の講座で詳しく扱います。
この概要ではPandasの重要な概念をほとんど網羅していますが、このライブラリは非常に豊富で、できることに限界はありません!では、この知識を使って具体的な問題を解決してみましょう。
この概要ではPandasの最も重要な概念をカバーしましたが、このライブラリは非常に豊富でできることに限界はありません!それでは、この知識を具体的な問題解決に適用してみましょう。
## 🚀 チャレンジ1: COVIDの拡散を分析する
## 🚀 チャレンジ1COVIDの拡散分析
最初に取り組む問題は、COVID-19の流行拡散のモデル化です。そのために、[ジョンズ・ホプキンス大学](https://jhu.edu/)の[システム科学工学センター](https://systems.jhu.edu/) (CSSE)が提供する、各国の感染者数に関するデータを使用します。このデータセットは[このGitHubリポジトリ](https://github.com/CSSEGISandData/COVID-19)で利用可能です。
最初の問題はCOVID-19の流行拡大のモデル化です。そのために、[ジョンズ・ホプキンス大学](https://jhu.edu/)の[システム科学工学センター](https://systems.jhu.edu/)CSSEが提供する各国の感染者数データを使用します。データセットは[このGitHubリポジトリ](https://github.com/CSSEGISandData/COVID-19)で入手可能です。
データの扱い方を示すために、[`notebook-covidspread.ipynb`](notebook-covidspread.ipynb)を開き、上から下まで読んでみてください。また、セルを実行したり、最後に残しておいたチャレンジに取り組むこともできます。
データの扱い方を学ぶために[`notebook-covidspread.ipynb`](notebook-covidspread.ipynb)を開き、最初から最後まで読んでみてください。セルを実行したり、最後に用意したチャレンジにも取り組めます。
![COVID Spread](../../../../translated_images/ja/covidspread.f3d131c4f1d260ab.webp)
![COVID拡散](../../../../translated_images/ja/covidspread.f3d131c4f1d260ab.webp)
> Jupyter Notebookでコードを実行する方法がわからない場合は、[この記事](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)を参照してください。
> Jupyter Notebookでコードの実行方法がわからない場合は、[こちらの記事](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)をご覧ください。
## 非構造化データの扱い
データは非常に頻繁に表形式で提供されますが、場合によってはテキストや画像など、あまり構造化されていないデータを扱う必要があります。この場合、上で見たデータ処理技術を適用するために、何らかの方法で構造化データを**抽出**する必要があります。以下はその例です:
データは非常に多くの場合表形式ですが、テキストや画像など、より構造化されていないデータを扱う必要がある場合もあります。この場合、上で見てきたデータ処理技術を適用するに、何らかの方法で<strong>構造化されたデータを抽出する</strong>必要があります。以下はその例です:
* テキストからキーワードを抽出し、それらのキーワードがどのくらい頻繁に出現するかを確認す
* ニューラルネットワークを使用して画像内のオブジェクトに関する情報を抽出する
* ビデオカメラのフィードから人々の感情に関する情報を取得する
* テキストからキーワードを抽出し、キーワードの出現頻度を調べ
* ニューラルネットワークを使って画像上の物体に関する情報を抽出する
* ビデオカメラの映像から人の感情情報を取得する
## 🚀 チャレンジ2: COVID関連論文の分析
## 🚀 チャレンジ2COVID関連論文の分析
のチャレンジでは、COVIDパンデミックのテーマを続け、関連する科学論文の処理に焦点を当てます。[CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)には、COVIDに関する7000以上執筆時点の論文が、メタデータや要約とともに提供されています約半分には全文も含まれています
こではCOVIDパンデミックに関する科学論文の処理を扱います。[CORD-19データセット](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)には7000以上執筆時点のCOVID関連論文が収録されており、メタデータと要旨およそ半分には全文も付属が利用可能です
このデータセットを分析する完全な例は、[Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum)コグニティブサービスを使用して[このブログ記事](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/)で説明されています。ここでは、この分析の簡略版を議論します。
[Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum)認知サービスを使ったこのデータセットの分析例は[こちらのブログ記事](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/)で詳述されています。ここではこの分析の簡略版を扱います。
> **NOTE**: このリポジトリにはデータセットのコピーは含まれていません。まず[このKaggleデータセット](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv)から[`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv)ファイルをダウンロードする必要があります。Kaggleへの登録が必要になる場合があります。また、登録なしで[こちら](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html)からデータセットをダウンロードすることもできますが、メタデータファイルに加えて全文も含まれます。
> <strong>注意</strong>: このリポジトリにはデータセットのコピーは含まれていません。まず[Kaggleのこのデータセット](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)から[`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv)ファイルをダウンロードする必要があります。Kaggleの登録が要求される場合があります。また、登録なしに[こちら](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html)からダウンロードできるものにはメタデータに加えて全文データも含まれています。
[`notebook-papers.ipynb`](notebook-papers.ipynb)を開き、上から下まで読んでみてください。また、セルを実行したり、最後に残しておいたチャレンジに取り組むこともできます。
[`notebook-papers.ipynb`](notebook-papers.ipynb)を開き、最初から最後まで読んでみてください。セルの実行や最後に用意したチャレンジにも挑戦できます。
![Covid Medical Treatment](../../../../translated_images/ja/covidtreat.b2ba59f57ca45fbc.webp)
![COVID医療処置](../../../../translated_images/ja/covidtreat.b2ba59f57ca45fbc.webp)
## 画像データの処理
最近、画像を理解するための非常に強力なAIモデルが開発されています。事前学習済みのニューラルネットワークやクラウドサービスを使用して解決できるタスクが多数あります。以下はその例です:
近年、画像を理解できる非常に強力なAIモデルが開発されています。多くのタスクが事前学習済みのニューラルネットワークやクラウドサービスを使って解決できます。例は以下の通りです:
* **画像分類**:画像を事前定義されたクラスのいずれかに分類することができます。[Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)などのサービスを使用して独自の画像分類器を簡単にトレーニングできます。
* **オブジェクト検出**:画像内のさまざまなオブジェクトを検出します。[Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)などのサービスは多くの一般的なオブジェクトを検出でき、[Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)モデルをトレーニングして特定の関心オブジェクトを検出することもできます。
* **顔検出**:年齢、性別、感情の検出を含みます。[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)を使用して実現できます。
* <strong>画像分類</strong>は画像をあらかじめ定められたクラスのいずれかに分類することを助けます。[Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)などのサービスを使用して自分で画像分類器を簡単にトレーニングできます。
* <strong>物体検出</strong>では画像内の様々な物体を検出します。[computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)などのサービスは多くの一般物体を検出可能で、[Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)モデルを使って特定の関心物体の検出にトレーニングすることもできます。
* <strong>顔検出</strong>は年齢、性別、感情検出も含みます。[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)を使って対応可能です。
これらのクラウドサービスは[Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum)を使用して呼び出すことができるため、データ探索ワークフローに簡単に組み込むことができます。
これらのクラウドサービスはすべて[Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum)で呼び出せるため、データ探索のワークフローに容易に組み込めます。
以下は画像データソースを探索する例です:
* [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/)というブログ記事では、Instagramの写真を探索し、人々が写真に多くの「いいね」を付ける理由を理解しようとしています。まず[Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)を使用して写真から可能な限り多くの情報を抽出し、その後[Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum)を使用して解釈可能なモデルを構築します。
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)では[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)を使用してイベントの写真に写っている人々の感情を抽出し、人々を幸せにする要因を理解しようとしています。
画像データ源からのデータ探索の具体例をいくつか紹介します:
* ブログ記事[How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/)ではインスタグラムの写真を解析し、人々がどの写真に多くのいいねを付けるかを理解しようとしています。まず[computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)を用いて写真からできるだけ多くの情報を抽出し、次に[Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum)を使て解釈可能なモデルを構築します。
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)では[Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)を使い、イベントの写真に写った人々の感情を抽出して、人々が幸せになる要因を探ろうとしています。
## 結論
構造化データでも非構造化データでも、Pythonを使用すればデータ処理と理解に関連するすべてのステップを実行できます。Pythonはおそらく最も柔軟なデータ処理方法であり、そのため多くのデータサイエンティストがPythonを主要なツールとして使用しています。データサイエンスの旅を本格的に進めたい場合は、Pythonを深く学ぶことをお勧めします!
構造化データであろうと非構造化データであろうと、Pythonを使えばデータ処理と理解に必要なすべてのステップを行うことができます。Pythonはおそらく最も柔軟なデータ処理手法であり、多くのデータサイエンティストが主要なツールとして用いる理由もそこにあります。データサイエンスの道を真剣に進みたいなら、Pythonを深く学ぶのは賢明な選択です!
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## 復習と自己学
## 復習 &
**書籍**
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
<strong>書籍</strong>
* [Wes McKinney著 『Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
**オンラインリソース**
* 公式[10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html)チュートリアル
* [Pandas Visualizationに関するドキュメント](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
<strong>オンラインリソース</strong>
* 公式[10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html)チュートリアル
* [Pandas可視化関連ドキュメント](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Python学習**
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse)
* [Take your First Steps with Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learnの学習パス
* [Turtle Graphicsとフラクタルで楽しく学ぶPython](https://github.com/shwars/pycourse)
* [Microsoft LearnのPython入門学習パス](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum)
## 課題
[上記のチャレンジに対する詳細なデータ研究を実施する](assignment.md)
[上記チャレンジに関するより詳細なデータ研究を行う](assignment.md)
## クレジット
## 謝辞
このレッスンは[Dmitry Soshnikov](http://soshnikov.com)によって♥️を込めて作成されました。
本レッスンは[Dmitry Soshnikov](http://soshnikov.com)による♥️のもとで作成されました
---
**免責事項**:
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解釈について、当方は一切の責任を負いません。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責事項**
本書類は AI 翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知おきください。原文の原語版が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や解釈違いについても、当方は責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -96,8 +96,8 @@
"language_code": "ko"
},
"2-Working-With-Data/07-python/README.md": {
"original_hash": "7bfec050f4717dcc2dfd028aca9d21f3",
"translation_date": "2025-09-06T15:31:08+00:00",
"original_hash": "fb29e3e0be486fe8f15d50bdade79eb1",
"translation_date": "2026-07-17T17:44:10+00:00",
"source_file": "2-Working-With-Data/07-python/README.md",
"language_code": "ko"
},

@ -1,60 +1,62 @@
# 데이터 작업: Python과 Pandas 라이브러리
# 데이터 다루기: 파이썬과 Pandas 라이브러리
| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) |
| :-------------------------------------------------------------------------------------------------------: |
| Python 작업하기 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
| 파이썬과 함께하기 - _[@nitya](https://twitter.com/nitya)의 스케치노트_ |
[![Intro Video](../../../../translated_images/ko/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
[![입문 동영상](../../../../translated_images/ko/video-ds-python.245247dc811db8e4.webp)](https://youtu.be/dZjWOGbsN4Y)
데이터베이스는 데이터를 저장하고 쿼리 언어를 사용하여 데이터를 조회하는 데 매우 효율적인 방법을 제공하지만, 데이터 처리를 가장 유연하게 수행하는 방법은 직접 프로그램을 작성하여 데이터를 조작하는 것입니다. 많은 경우 데이터베이스 쿼리가 더 효과적인 방법일 수 있습니다. 하지만 더 복잡한 데이터 처리가 필요한 경우 SQL로 쉽게 처리할 수 없는 경우도 있습니다.
데이터 처리는 어떤 프로그래밍 언어로도 작성할 수 있지만, 데이터 작업에 있어 더 높은 수준의 언어들이 있습니다. 데이터 과학자들은 일반적으로 다음 언어들 중 하나를 선호합니다:
데이터베이스는 데이터를 저장하고 쿼리 언어로 조회하는 매우 효율적인 방법을 제공하지만, 가장 유연한 데이터 처리 방법은 데이터를 조작하는 자신만의 프로그램을 작성하는 것입니다. 많은 경우 데이터베이스 쿼리를 사용하는 것이 더 효과적일 수 있습니다. 하지만 더 복잡한 데이터 처리가 필요할 때는 SQL로 쉽게 처리할 수 없는 경우도 있습니다.
데이터 처리는 어떤 프로그래밍 언어로도 할 수 있지만, 데이터 작업에 관해 더 높은 수준의 언어들이 있습니다. 데이터 과학자들은 일반적으로 다음 언어들 중 하나를 선호합니다:
* **[Python](https://www.python.org/)**: 범용 프로그래밍 언어로, 그 간단함 때문에 초보자에게 가장 적합한 옵션 중 하나로 간주됩니다. Python은 ZIP 아카이브에서 데이터를 추출하거나 이미지를 그레이스케일로 변환하는 등 많은 실용적인 문제를 해결할 수 있는 추가 라이브러리를 많이 제공합니다. 데이터 과학 외에도 Python은 웹 개발에도 자주 사용됩니다.
* **[R](https://www.r-project.org/)**: 통계 데이터 처리를 염두에 두고 개발된 전통적인 도구입니다. R은 대규모 라이브러리 저장소(CRAN)를 포함하고 있어 데이터 처리에 적합한 선택입니다. 하지만 R은 범용 프로그래밍 언어가 아니며 데이터 과학 도메인 외에서는 거의 사용되지 않습니다.
* **[Julia](https://julialang.org/)**: 데이터 과학을 위해 특별히 개발된 또 다른 언어입니다. Python보다 더 나은 성능을 제공하도록 설계되어 과학적 실험에 적합한 도구입니다.
* **[Python](https://www.python.org/)**, 범용 프로그래밍 언어로, 단순성 때문에 초보자에게 가장 좋은 선택 중 하나로 여겨집니다. Python은 ZIP 아카이브에서 데이터를 추출하거나 이미지를 그레이스케일로 변환하는 등 많은 실용적인 문제를 해결하는 데 도움이 되는 추가 라이브러리가 많습니다. 데이터 과학뿐 아니라 웹 개발에도 자주 사용됩니다.
* <strong>[R](https://www.r-project.org/)</strong>는 통계 데이터 처리에 중점을 두고 개발된 전통적인 도구 상자입니다. 라이브러리 저장소(CRAN)가 잘 갖춰져 있어 데이터 처리에 좋은 선택입니다. 그러나 R은 범용 프로그래밍 언어가 아니며, 데이터 과학 영역 밖에서는 거의 사용되지 않습니다.
* <strong>[Julia](https://julialang.org/)</strong> 데이터 과학을 위해 특별히 개발된 또 다른 언어입니다. Python보다 더 나은 성능을 제공하도록 설계되어 과학 실험에 탁월한 도구입니다.
번 강의에서는 Python을 사용한 간단한 데이터 처리에 초점을 맞출 것입니다. Python 언어에 대한 기본적인 친숙함을 가정합니다. Python에 대한 더 깊은 학습을 원한다면 다음 리소스를 참조할 수 있습니다:
강의에서는 간단한 데이터 처리를 위해 Python 사용에 초점을 맞춥니다. 기본적인 언어 익숙도를 가정합니다. 파이썬을 더 깊이 배우고 싶다면 다음 리소스 중 하나를 참고할 수 있습니다:
* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - Python 프로그래밍에 대한 GitHub 기반의 빠른 입문 과정
* [Take your First Steps with Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)에서 제공하는 학습 경로
* [Turtle 그래픽과 프랙탈로 즐겁게 배우는 파이썬](https://github.com/shwars/pycourse) - GitHub 기반 파이썬 프로그래밍 빠른 입문 코스
* [파이썬 첫걸음 배우기](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn의 러닝 경로
데이터는 다양한 형태로 제공될 수 있습니다. 이번 강의에서는 **표 형식 데이터**, **텍스트**, **이미지**의 세 가지 형태의 데이터를 고려할 것입니다.
데이터는 다양한 형태로 올 수 있습니다. 이 강의에서는 **표형 데이터**, <strong>텍스트</strong>, <strong>이미지</strong> 세 가지 형태의 데이터를 살펴봅니다.
관련된 모든 라이브러리를 완벽히 다루기보다는 몇 가지 데이터 처리 예제에 집중할 것입니다. 이는 무엇이 가능한지에 대한 기본 아이디어를 얻고, 문제 발생 시 해결책을 찾는 방법을 이해하는 데 도움이 됩니다.
> **가장 유용한 조언**. 특정 데이터 연산을 수행할 줄 모를 때, 인터넷에서 검색해 보세요. [Stackoverflow](https://stackoverflow.com/)는 많은 전형적인 작업에 대해 유용한 파이썬 코드 샘플이 풍부합니다.
우리는 관련 라이브러리 전체를 다루는 대신 몇 가지 데이터 처리 예제에 집중할 것입니다. 이를 통해 가능한 작업의 주요 아이디어를 얻고, 필요할 때 문제 해결 방법을 찾을 수 있는 이해를 제공할 것입니다.
> **가장 유용한 조언**: 데이터를 처리하는 특정 작업을 수행해야 하지만 방법을 모를 경우 인터넷에서 검색해 보세요. [Stackoverflow](https://stackoverflow.com/)에는 많은 일반적인 작업에 대한 유용한 Python 코드 샘플이 포함되어 있습니다.
## [강의 전 퀴즈](https://ff-quizzes.netlify.app/en/ds/quiz/12)
## 표 데이터와 데이터프레임
## 표형 데이터와 데이터프레임
관계형 데이터베이스를 논의할 때 이미 표 형식 데이터를 접한 적이 있습니다. 많은 데이터가 있고 여러 개의 연결된 테이블에 포함되어 있다면 SQL을 사용하는 것이 확실히 합리적입니다. 하지만 데이터 과학에서는 데이터의 분포, 값 간의 상관관계 등 데이터를 이해하거나 통찰력을 얻어야 하는 경우가 많습니다. 또한 원본 데이터를 변환한 후 시각화를 수행해야 하는 경우도 많습니다. 이러한 단계는 Python을 사용하여 쉽게 수행할 수 있습니다.
관계형 데이터베이스에 대해 배울 때 이미 표형 데이터를 접했습니다. 데이터가 많고 여러 관련 테이블에 분산되어 있으면 SQL을 사용하는 것이 당연히 합리적입니다. 하지만 데이터가 하나의 테이블에 있고 분포, 값 간 상관관계 등 데이터를 <strong>이해</strong>하거나 <strong>통찰</strong>할 필요가 있는 경우가 많습니다. 데이터 과학에서는 원본 데이터를 변환하고 시각화하는 경우가 많으며, 이 두 단계 모두 파이썬으로 쉽게 수행할 수 있습니다.
Python에서 표 형식 데이터를 처리하는 데 유용한 두 가지 주요 라이브러리가 있습니다:
* **[Pandas](https://pandas.pydata.org/)**: **데이터프레임**을 조작할 수 있게 해주는 라이브러리로, 관계형 테이블과 유사합니다. 이름이 지정된 열을 가질 수 있으며, 행, 열 및 데이터프레임 전체에 대해 다양한 작업을 수행할 수 있습니다.
* **[Numpy](https://numpy.org/)**: **텐서**, 즉 다차원 **배열**을 처리하는 라이브러리입니다. 배열은 동일한 기본 유형의 값을 가지며 데이터프레임보다 간단하지만 더 많은 수학적 작업을 제공하며 오버헤드가 적습니다.
파이썬에서 표형 데이터를 다루는 데 가장 유용한 라이브러리 두 가지가 있습니다:
* <strong>[Pandas](https://pandas.pydata.org/)</strong>는 관계형 테이블에 해당하는 <strong>데이터프레임</strong>을 조작할 수 있게 해줍니다. 이름 있는 열이 있고, 행, 열, 전체 데이터프레임에 대해 다양한 작업을 수행할 수 있습니다.
* <strong>[Numpy](https://numpy.org/)</strong>는 다차원 <strong>텐서</strong> 즉, 다차원 <strong>배열</strong>을 다루는 라이브러리입니다. 배열은 동일한 타입 값을 가지며, 데이터프레임보다 간단하지만 더 많은 수학 연산을 지원하고 오버헤드가 적습니다.
또한 알아두면 좋은 몇 가지 다른 라이브러리가 있습니다:
* **[Matplotlib](https://matplotlib.org/)**: 데이터 시각화 및 그래프 그리기에 사용되는 라이브러리
* **[SciPy](https://www.scipy.org/)**: 추가적인 과학적 기능을 제공하는 라이브러리. 확률 및 통계에 대해 논의할 때 이미 이 라이브러리를 접한 적이 있습니다.
또한 알아두어야 할 몇 가지 라이브러리가 있습니다:
* <strong>[Matplotlib](https://matplotlib.org/)</strong>는 데이터 시각화 및 그래프 그리기에 쓰이는 라이브러리입니다.
* <strong>[SciPy](https://www.scipy.org/)</strong>는 추가 과학 함수들을 포함한 라이브러리로, 확률 및 통계에서 이미 소개한 바 있습니다.
다음은 Python 프로그램의 시작 부분에서 이러한 라이브러리를 가져오는 데 일반적으로 사용하는 코드입니다:
파이썬 프로그램 초반에 보통 아래 코드를 사용해 이들 라이브러리를 임포트합니다:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import ... # you need to specify exact sub-packages that you need
from scipy import ... # 필요한 정확한 하위 패키지를 지정해야 합니다
```
Pandas는 몇 가지 기본 개념을 중심으로 구성됩니다.
Pandas는 몇 가지 기본 개념을 중심으로 설계되었습니다.
### 시리즈 (Series)
### 시리즈
**시리즈**는 리스트나 numpy 배열과 유사한 값의 시퀀스입니다. 주요 차이점은 시리즈에는 **인덱스**가 있다는 점이며, 시리즈를 조작할 때(예: 더하기) 인덱스가 고려됩니다. 인덱스는 리스트나 배열에서 기본적으로 사용되는 정수 행 번호처럼 간단할 수도 있고, 날짜 간격과 같은 복잡한 구조를 가질 수도 있습니다.
<strong>시리즈(Series)</strong>는 리스트나 numpy 배열과 비슷한 값들의 순차형입니다. 주된 차이점은 시리즈에는 <strong>인덱스</strong>가 있고, 시리즈끼리 연산을 할 때(예: 덧셈) 인덱스가 고려된다는 점입니다. 인덱스는 정수 행 번호일 수 있으며(리스트나 배열에서 기본 생성되는 인덱스), 날짜 구간과 같은 복잡한 구조일 수도 있습니다.
> **참고**: 동반된 노트북 [`notebook.ipynb`](notebook.ipynb)에 Pandas의 소개 코드가 포함되어 있습니다. 여기에서는 몇 가지 예제를 간략히 설명하며, 전체 노트북을 확인해보는 것을 권장합니다.
> <strong>참고</strong>: 동봉된 노트북 [`notebook.ipynb`](notebook.ipynb)에는 기본적인 Pandas 코드가 있습니다. 여기서는 일부 예시만 제시하므로 전체 노트북을 확인해 보시길 권합니다.
예를 들어, 아이스크림 가게의 판매 데이터를 분석하고 싶다고 가정해 봅시다. 특정 기간 동안 판매량(매일 판매된 아이템 수)의 시리즈를 생성해 보겠습니다:
예를 들어 우리의 아이스크림 가게 매출을 분석하고자 할 때, 일정 기간 동안 일별 판매량 시리즈를 생성해 보겠습니다:
```python
start_date = "Jan 1, 2020"
@ -64,47 +66,47 @@ print(f"Length of index is {len(idx)}")
items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx)
items_sold.plot()
```
![Time Series Plot](../../../../translated_images/ko/timeseries-1.80de678ab1cf727e.webp)
![시계열 플롯](../../../../translated_images/ko/timeseries-1.80de678ab1cf727e.webp)
이제 매주 친구들과 파티를 열고 추가로 아이스크림 10팩을 가져간다고 가정해 봅시다. 이를 나타내는 또 다른 시리즈를 생성할 수 있습니다:
이제 매주 친구들을 위한 파티를 열 때 간식용 아이스크림 10팩을 추가로 준비한다고 가정하겠습니다. 주 단위로 인덱싱된 또 다른 시리즈를 만들어 이를 보여줄 수 있습니다:
```python
additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W"))
```
두 시리즈를 더하면 총 판매량을 얻을 수 있습니다:
시리즈 둘을 합치면 총 판매량이 나옵니다:
```python
total_items = items_sold.add(additional_items,fill_value=0)
total_items.plot()
```
![Time Series Plot](../../../../translated_images/ko/timeseries-2.aae51d575c55181c.webp)
![시계열 플롯](../../../../translated_images/ko/timeseries-2.aae51d575c55181c.webp)
> **참고**: 단순한 문법 `total_items+additional_items`을 사용하지 않았습니다. 그렇게 하면 결과 시리즈에 많은 `NaN`(*Not a Number*) 값이 생깁니다. 이는 `additional_items` 시리즈의 일부 인덱스 포인트에 값이 없기 때문이며, `NaN`을 다른 값에 더하면 결과는 `NaN`이 됩니다. 따라서 덧셈 중에 `fill_value` 매개변수를 지정해야 합니다.
> <strong>참고</strong>: 간단한 문법인 `total_items+additional_items`를 사용하지 않는 이유는 결과 시리즈에 많은 `NaN` (*숫자가 아님*) 값이 발생하기 때문입니다. `additional_items` 시리즈에는 일부 인덱스에 값이 없고, `NaN`과의 덧셈이 `NaN`을 만드는 특성 때문입니다. 그래서 덧셈 시에 `fill_value` 파라미터를 지정해야 합니다.
시계열 데이터를 사용하면 다른 시간 간격으로 시리즈를 **재샘플링**할 수도 있습니다. 예를 들어, 월별 평균 판매량을 계산하고 싶다면 다음 코드를 사용할 수 있습니다:
시계열 데이터는 다른 시간 간격으로 <strong>재샘플링(resample)</strong>할 수도 있습니다. 예를 들어 월별 평균 판매량을 계산하고 싶으면 다음 코드를 사용합니다:
```python
monthly = total_items.resample("1M").mean()
ax = monthly.plot(kind='bar')
```
![Monthly Time Series Averages](../../../../translated_images/ko/timeseries-3.f3147cbc8c624881.webp)
![월별 시계열 평균](../../../../translated_images/ko/timeseries-3.f3147cbc8c624881.webp)
### 데이터프레임 (DataFrame)
### 데이터프레임(DataFrame)
데이터프레임은 기본적으로 동일한 인덱스를 가진 여러 시리즈의 모음입니다. 여러 시리즈를 결합하여 데이터프레임을 만들 수 있습니다:
데이터프레임은 인덱스가 같은 여러 시리즈의 모음입니다. 여러 시리즈를 결합하여 데이터프레임을 만들 수 있습니다:
```python
a = pd.Series(range(1,10))
b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9))
df = pd.DataFrame([a,b])
```
이렇게 하면 다음과 같은 가로형 테이블이 생성됩니다:
이렇게 하면 다음과 같은 가로형 표가 만들어집니다:
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | I | like | to | use | Python | and | Pandas | very | much |
시리즈를 열로 사용하고 딕셔너리를 사용하여 열 이름을 지정할 수도 있습니다:
시리즈를 열로 사용하고, 사전을 이용해 열 이름을 지정할 수도 있습니다:
```python
df = pd.DataFrame({ 'A' : a, 'B' : b })
```
이렇게 하면 다음과 같은 테이블이 생성됩니다:
이렇게 하면 다음과 같은 표가 만들어집니다:
| | A | B |
| --- | --- | ------ |
@ -118,39 +120,39 @@ df = pd.DataFrame({ 'A' : a, 'B' : b })
| 7 | 8 | very |
| 8 | 9 | much |
**참고**: 이전 테이블을 전치하여 동일한 테이블 레이아웃을 얻을 수도 있습니다. 예를 들어, 다음과 같이 작성하면 됩니다:
<strong>참고</strong> 이전 표를 전치(transpose)해서도 같은 배열을 만들 수 있습니다. 예를 들어
```python
df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' })
df = pd.DataFrame([a,b]).T.rename(columns={ 0 : 'A', 1 : 'B' })
```
여기서 `.T`는 데이터프레임을 전치하는 작업을 의미하며, `rename` 작업을 통해 이전 예제와 일치하도록 열 이름을 변경할 수 있습니다.
여기서 `.T`는 데이터프레임의 행과 열을 바꾸는 전치 연산이고, `rename`은 열 이름을 이전 예와 맞게 바꾸는 작업입니다.
데이터프레임에서 수행할 수 있는 몇 가지 중요한 작업은 다음과 같습니다:
**열 선택**. `df['A']`를 작성하여 개별 열을 선택할 수 있습니다. 이 작업은 시리즈를 반환합니다. `df[['B','A']]`를 작성하여 열의 하위 집합을 다른 데이터프레임으로 선택할 수도 있습니다. 이 작업은 또 다른 데이터프레임을 반환합니다.
**열 선택**. 개별 열은 `df['A']`라고 쓰면 선택할 수 있으며, 이 작업은 시리즈를 반환합니다. `df[['B','A']]`처럼 여러 열을 선택하면 다른 데이터프레임이 됩니다.
**특정 행 필터링**. 예를 들어, 열 `A`가 5보다 큰 행만 남기려면 `df[df['A']>5]`를 작성할 수 있습니다.
**특정 조건으로 행 필터링**. 예를 들어 `A` 열이 5 초과인 행만 남기려면 `df[df['A']>5]`라고 씁니다.
> **참고**: 필터링이 작동하는 방식은 다음과 같습니다. 표현식 `df['A']<5`는 부울 시리즈를 반환하며, 이는 원래 시리즈 `df['A']`의 각 요소에 대해 표현식이 `True`인지 `False`인지 나타냅니다. 부울 시리즈가 인덱스로 사용되면 데이터프레임의 행 하위 집합을 반환합니다. 따라서 임의의 Python 부울 표현식을 사용할 수 없습니다. 예를 들어, `df[df['A']>5 and df['A']<7]`를 작성하는 것은 잘못된 방식입니다. 대신 부울 시리즈에 대한 특별한 `&` 연산을 사용하여 `df[(df['A']>5) & (df['A']<7)]`를 작성해야 합니다(*괄호가 중요합니다*).
> <strong>참고</strong>: 필터링 방식은 다음과 같습니다. `df['A']<5`는 불리언 시리즈를 반환하며, 각 원소가 참인지 거짓인지 표시합니다. 불리언 시리즈는 인덱스로 사용되면 데이터프레임의 행 하위 집합을 반환합니다. 따라서 임의의 파이썬 불리언 표현식을 사용할 수 없습니다. 예를 들어 `df[df['A']>5 and df['A']<7]`은 잘못된 표현입니다. 대신 불리언 시리즈에 특수 연산자인 `&`를 사용해 `df[(df['A']>5) & (df['A']<7)]`라고 써야 합니다 (*괄호 필수*).
**새로운 계산 가능한 열 생성**. 직관적인 표현식을 사용하여 데이터프레임에 새로운 계산 가능한 열을 쉽게 생성할 수 있습니다:
**새 컴퓨팅 열 만들기**. 직관적 표현을 사용해 데이터프레임에 새 계산 열을 쉽게 추가할 수 있습니다:
```python
df['DivA'] = df['A']-df['A'].mean()
```
이 예제는 A의 평균값에서의 편차를 계산합니다. 여기서 실제로 발생하는 것은 시리즈를 계산한 다음 왼쪽에 할당하여 새 열을 생성하는 것입니다. 따라서 시리즈와 호환되지 않는 작업은 사용할 수 없습니다. 예를 들어, 아래 코드는 잘못된 방식입니다:
이 예제는 `A`의 평균값과 편차를 계산합니다. 실제로는 시리즈를 계산한 후 좌변에 할당해 새 열을 만들기 때문에 시리즈와 호환되지 않는 연산은 사용할 수 없습니다. 아래 코드는 잘못된 예입니다:
```python
# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi"
df['LenB'] = len(df['B']) # <- Wrong result
# 잘못된 코드 -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi"
df['LenB'] = len(df['B']) # <-
```
후자의 예제는 문법적으로는 올바르지만 잘못된 결과를 제공합니다. 이는 시리즈 `B`의 길이를 열의 모든 값에 할당하기 때문이며, 우리가 의도한 개별 요소의 길이가 아닙니다.
문법적으로는 맞지만 잘못된 결과를 냅니다. 모든 열 값에 시리즈 `B` 길이가 할당되며, 개별 원소 길이가 아닙니다.
이와 같은 복잡한 표현식을 계산해야 하는 경우 `apply` 함수를 사용할 수 있습니다. 마지막 예는 다음과 같이 작성할 수 있습니다:
복잡한 표현식을 계산해야 할 때 `apply` 함수를 사용할 수 있습니다. 마지막 예는 다음과 같이 작성할 수 있습니다:
```python
df['LenB'] = df['B'].apply(lambda x : len(x))
# or
# 또는
df['LenB'] = df['B'].apply(len)
```
위 작업을 수행한 후 다음 데이터프레임을 얻게 됩니다:
위 작업을 거치면 다음과 같은 데이터프레임이 만들어집니다:
| | A | B | DivA | LenB |
| --- | --- | ------ | ---- | ---- |
@ -164,22 +166,22 @@ df['LenB'] = df['B'].apply(len)
| 7 | 8 | very | 3.0 | 4 |
| 8 | 9 | much | 4.0 | 4 |
**숫자를 기준으로 행 선택**은 `iloc` 구문을 사용하여 수행할 수 있습니다. 예를 들어, 데이터프레임에서 처음 5개의 행을 선택하려면:
<strong>숫자로 행 선택하기</strong>`iloc` 구문을 사용합니다. 예를 들어 데이터프레임에서 처음 5개 행을 선택하려면:
```python
df.iloc[:5]
```
**그룹화**는 종종 Excel의 *피벗 테이블*과 유사한 결과를 얻는 데 사용됩니다. 예를 들어, `LenB`의 각 숫자에 대해 열 `A`의 평균값을 계산하고 싶다면 데이터프레임을 `LenB`로 그룹화한 다음 `mean`을 호출할 수 있습니다:
<strong>그룹화</strong>는 Excel의 <em>피벗 테이블</em>과 유사한 결과를 얻을 때 자주 사용됩니다. 예컨대 `LenB`별로 `A` 열 평균값을 계산하려면, 데이터프레임을 `LenB`로 그룹화하고 `mean`을 호출합니다:
```python
df.groupby(by='LenB')[['A','DivA']].mean()
```
그룹의 평균값과 요소 수를 계산해야 하는 경우 더 복잡한 `aggregate` 함수를 사용할 수 있습니다:
평균과 그룹 내 원소 수를 함께 구하려면 더 복잡한 `aggregate` 함수를 사용할 수 있습니다:
```python
df.groupby(by='LenB') \
.aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \
.rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'})
```
이렇게 하면 다음과 같은 테이블이 생성됩니다:
결과는 다음 표와 같습니다:
| LenB | Count | Mean |
| ---- | ----- | -------- |
@ -190,92 +192,97 @@ df.groupby(by='LenB') \
| 6 | 2 | 6.000000 |
### 데이터 가져오기
우리는 Python 객체로부터 Series와 DataFrame을 생성하는 것이 얼마나 쉬운지 살펴보았습니다. 하지만 데이터는 보통 텍스트 파일이나 Excel 테이블 형태로 제공됩니다. 다행히도 Pandas는 디스크에서 데이터를 로드하는 간단한 방법을 제공합니다. 예를 들어, CSV 파일을 읽는 것은 다음과 같이 간단합니다:
Python 객체로부터 Series와 DataFrame을 쉽게 구성할 수 있는 방법을 살펴보았습니다. 그러나 데이터는 보통 텍스트 파일이나 Excel 표의 형태로 제공됩니다. 다행히도, Pandas는 디스크에서 데이터를 불러오는 간단한 방법을 제공합니다. 예를 들어, CSV 파일을 읽는 것은 다음과 같이 간단합니다:
```python
df = pd.read_csv('file.csv')
```
"Challenge" 섹션에서 외부 웹사이트에서 데이터를 가져오는 것을 포함한 더 많은 데이터 로드 예제를 살펴볼 것입니다.
"도전" 섹션에서 외부 웹사이트에서 데이터를 가져오는 것을 포함하여 더 많은 데이터 로드 예제를 볼 것입니다.
### 출력 및 시각화
데이터 과학자는 데이터를 탐색해야 하는 경우가 많으므로 데이터를 시각화할 수 있는 것이 중요합니다. DataFrame이 클 경우, 우리가 모든 것을 올바르게 수행하고 있는지 확인하기 위해 처음 몇 줄만 출력하고 싶을 때가 많습니다. 이는 `df.head()`를 호출하여 수행할 수 있습니다. Jupyter Notebook에서 실행하면 DataFrame이 보기 좋은 표 형태로 출력됩니다.
데이터 과학자는 종종 데이터를 탐색해야 하므로 데이터를 시각화할 수 있는 것이 중요합니다. DataFrame이 클 때는 보통 `df.head()`를 호출하여 처음 몇 행만 출력함으로써 모든 것이 올바르게 처리되고 있는지 확인하고자 합니다. Jupyter Notebook에서 실행하면, DataFrame을 깔끔한 표 형식으로 출력합니다.
우리는 또한 몇몇 열을 시각화하기 위해 `plot` 함수의 사용법을 살펴보았습니다. `plot`은 많은 작업에 매우 유용하며 `kind=` 매개변수를 통해 다양한 그래프 유형을 지원하지만, 더 복잡한 것을 그리기 위해 항상 기본 `matplotlib` 라이브러리를 사용할 수 있습니다. 데이터 시각화는 별도의 강의에서 자세히 다룰 입니다.
일부 열을 시각화하기 위해 `plot` 함수의 사용법도 살펴보았습니다. `plot`은 많은 작업에 매우 유용하며 `kind=` 매개변수를 통해 여러 그래프 유형을 지원하지만, 더 복잡한 것을 그려야 할 때는 언제든지 순수한 `matplotlib` 라이브러리를 사용할 수 있습니다. 데이터 시각화는 별도의 강의에서 자세히 다룰 예정입니다.
개요는 Pandas의 가장 중요한 개념을 다루지만, 이 라이브러리는 매우 풍부하며 할 수 있는 일에는 한계가 없습니다! 이제 이 지식을 특정 문제를 해결하는 데 적용해 봅시다.
번 개요에서는 Pandas의 가장 중요한 개념을 다루었으나, 이 라이브러리는 매우 풍부하며 할 수 있는 것에 제한이 없습니다! 이제 이 지식을 특정 문제 해결에 적용해 봅시다.
## 🚀 Challenge 1: COVID 확산 분석
## 🚀 도전 1: COVID 확산 분석
우리가 집중할 첫 번째 문제는 COVID-19의 전염병 확산 모델링니다. 이를 위해 [Johns Hopkins University](https://jhu.edu/)의 [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE)에서 제공하는 다양한 국가의 감염자 수 데이터를 사용할 것입니다. 데이터셋은 [이 GitHub 저장소](https://github.com/CSSEGISandData/COVID-19)에서 이용할 수 있습니다.
첫 번째 문제는 COVID-19의 전염병 확산 모델링에 집중합니다. 이를 위해 [Johns Hopkins University](https://jhu.edu/)의 [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE)이 제공하는 여러 국가별 감염자 수 데이터를 사용할 예정입니다. 데이터셋은 [이 GitHub 저장소](https://github.com/CSSEGISandData/COVID-19)에서 제공됩니다.
데이터를 다루는 방법을 보여주기 위해 [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb)를 열어 처음부터 끝까지 읽어보시길 권장합니다. 셀을 실행하고, 마지막에 남겨둔 몇 가지 도전을 수행할 수도 있습니다.
데이터 처리를 어떻게 다루는지 보여주기 위해 [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) 파일을 열어 처음부터 끝까지 읽어보세요. 또한 셀을 실행하거나 마지막에 남겨둔 도전 문제들을 풀어볼 수도 있습니다.
![COVID 확산](../../../../translated_images/ko/covidspread.f3d131c4f1d260ab.webp)
![COVID Spread](../../../../translated_images/ko/covidspread.f3d131c4f1d260ab.webp)
> Jupyter Notebook에서 코드를 실행하는 방법을 모른다면 [이 기사](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)를 참고하세요.
> Jupyter Notebook에서 코드를 실행하는 방법을 모른다면, [이 글](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)을 참고하세요.
## 비정형 데이터 작업
## 비정형 데이터 다루기
데이터는 매우 자주 표 형식으로 제공되지만, 경우에 따라 텍스트나 이미지 같은 덜 구조화된 데이터를 다뤄야 할 때도 있습니다. 이 경우, 위에서 본 데이터 처리 기술을 적용하려면 구조화된 데이터를 **추출**해야 합니다. 몇 가지 예는 다음과 같습니다:
데이터는 대부분 표 형식으로 제공되지만, 경우에 따라 텍스트나 이미지 같은 덜 구조화된 데이터를 다뤄야 할 때가 있습니다. 이 경우 위에서 살펴본 데이터 처리 기법을 적용하려면 구조화된 데이터를 <strong>추출</strong>해야 합니다. 몇 가지 예시는 다음과 같습니다:
* 텍스트에서 키워드를 추출하고 해당 키워드가 얼마나 자주 나타나는지 확인
* 신경망을 사용하여 사진 속 객체에 대한 정보 추출
* 비디오 카메라 피드에서 사람들의 감정 정보 얻기
* 텍스트에서 키워드를 추출하고, 이 키워드가 얼마나 자주 나타나는지 확인
* 신경망을 사용하여 이미지 내 객체에 대한 정보 추출
* 비디오 카메라 피드 속 인물의 감정 정보 추출
## 🚀 Challenge 2: COVID 논문 분석
## 🚀 도전 2: COVID 논문 분석
도전에서는 COVID 팬데믹 주제를 계속 다루며, 관련 과학 논문을 처리하는 데 초점을 맞춥니다. [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)에는 COVID에 관한 7000개 이상의 논문(작성 당시 기준)이 메타데이터와 초록과 함께 제공됩니다(약 절반은 전체 텍스트도 제공됨).
번 도전에서는 COVID 팬데믹 주제를 이어가며, 관련 과학 논문 처리에 집중합니다. 7000편 이상의 COVID 관련 논문이 포함된 [CORD-19 데이터셋](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)이 있으며, 메타데이터와 초록이 제공됩니다(절반가량의 논문에는 전체 텍스트도 제공).
이 데이터셋을 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 인지 서비스를 사용하여 분석하는 전체 예제는 [이 블로그 글](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/)에 설명되어 있습니다. 우리는 이 분석의 간소화된 버전을 논의할 것입니다.
[Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 인지 서비스를 사용한 이 데이터셋 분석의 전체 예시는 [이 블로그 게시물](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/)에 설명되어 있습니다. 우리는 이 분석의 단순화된 버전을 다룰 것입니다.
> **NOTE**: 이 저장소의 일부로 데이터셋 복사본을 제공하지 않습니다. 먼저 [이 데이터셋의 Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv)에서 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 파일을 다운로드해야 할 수도 있습니다. Kaggle 등록이 필요할 수 있습니다. 등록 없이 [여기](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html)에서 데이터셋을 다운로드할 수도 있지만, 메타데이터 파일 외에도 모든 전체 텍스트가 포함됩니다.
> <strong>참고</strong>: 본 저장소에는 데이터셋 사본이 포함되어 있지 않습니다. 먼저 [이 Kaggle 데이터셋](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)에서 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 파일을 다운로드해야 할 수 있습니다. Kaggle 회원가입이 필요할 수 있습니다. 등록 없이 [여기](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html)에서 데이터셋을 다운로드할 수도 있지만, 메타데이터 파일뿐만 아니라 전체 텍스트도 포함됩니다.
[`notebook-papers.ipynb`](notebook-papers.ipynb)를 열어 처음부터 끝까지 읽어보세요. 셀을 실행하고, 마지막에 남겨둔 몇 가지 도전을 수행할 수도 있습니다.
[`notebook-papers.ipynb`](notebook-papers.ipynb)를 열어 처음부터 끝까지 읽어보세요. 셀을 실행하거나 마지막에 남겨둔 도전을 풀어볼 수도 있습니다.
![COVID 의료 치료](../../../../translated_images/ko/covidtreat.b2ba59f57ca45fbc.webp)
![Covid Medical Treatment](../../../../translated_images/ko/covidtreat.b2ba59f57ca45fbc.webp)
## 이미지 데이터 처리
최근에는 이미지를 이해할 수 있는 매우 강력한 AI 모델이 개발되었습니다. 사전 학습된 신경망이나 클라우드 서비스를 사용하여 해결할 수 있는 많은 작업이 있습니다. 몇 가지 예는 다음과 같습니다:
최근 매우 강력한 AI 모델이 개발되어 이미지를 이해할 수 있게 되었습니다. 사전 학습된 신경망이나 클라우드 서비스를 사용하여 해결할 수 있는 작업은 많습니다. 몇 가지 예시는 다음과 같습니다:
* **이미지 분류**: 이미지를 미리 정의된 클래스 중 하나로 분류하는 데 도움을 줄 수 있습니다. [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum)과 같은 서비스를 사용하여 쉽게 자신만의 이미지 분류기를 훈련할 수 있습니다.
* **객체 감지**: 이미지에서 다양한 객체를 감지합니다. [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)과 같은 서비스는 여러 일반적인 객체를 감지할 수 있으며, [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 모델을 훈련하여 특정 관심 객체를 감지할 수 있습니다.
* **얼굴 감지**: 나이, 성별 및 감정 감지를 포함합니다. 이는 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)를 통해 수행할 수 있습니다.
* **이미지 분류**, 이미지를 미리 정의된 클래스 중 하나로 분류하는 데 도움이 됩니다. [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 등의 서비스를 사용해 손쉽게 자신만의 이미지 분류기를 훈련할 수 있습니다.
* **객체 감지**, 이미지 내 여러 객체를 감지합니다. [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)과 같은 서비스는 여러 일반 객체를 감지하며, [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 모델을 훈련해 특정 관심 객체를 감지할 수도 있습니다.
* **얼굴 감지**, 연령, 성별 및 감정 감지도 가능합니다. 이는 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 수행할 수 있습니다.
이 모든 클라우드 서비스는 [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum)를 사용하여 호출할 수 있으며, 따라서 데이터 탐색 워크플로에 쉽게 통합할 수 있습니다.
러한 모든 클라우드 서비스는 [Python SDK](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum)를 통해 호출할 수 있어 데이터 탐색 작업에 쉽게 통합됩니다.
다음은 이미지 데이터 소스를 탐색하는 몇 가지 예입니다:
* 블로그 글 [코딩 없이 데이터 과학 배우기](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/)에서는 Instagram 사진을 탐색하며 사람들이 사진에 더 많은 좋아요를 주는 이유를 이해하려고 합니다. 먼저 [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)을 사용하여 사진에서 가능한 한 많은 정보를 추출한 다음 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum)을 사용하여 해석 가능한 모델을 구축합니다.
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)에서는 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)를 사용하여 이벤트 사진 속 사람들의 감정을 추출하여 사람들을 행복하게 만드는 요인을 이해하려고 합니다.
이미지 데이터 소스 탐색 예시는 다음과 같습니다:
* 블로그 글 [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/)에서는 Instagram 사진을 탐색하며, 사람들이 어떤 사진에 더 많은 좋아요를 주는지 이해하려고 합니다. 먼저 [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)를 사용해 사진에서 가능한 많은 정보를 추출한 다음, [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 해석 가능한 모델을 구축합니다.
* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)에서는 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum)를 사용해 이벤트에서 찍힌 사진 속 인물의 감정을 추출하여 사람들이 무엇에 행복을 느끼는지 이해하려고 합니다.
## 결론
구조화된 데이터든 비정형 데이터든, Python을 사용하면 데이터 처리 및 이해와 관련된 모든 단계를 수행할 수 있습니다. 이는 아마도 데이터 처리의 가장 유연한 방법이며, 대부분의 데이터 과학자가 Python을 주요 도구로 사용하는 이유입니다. 데이터 과학 여정에 진지하다면 Python을 깊이 배우는 것이 아마도 좋은 선택일 것입니다!
구조화된 데이터든 비정형 데이터든, Python을 사용하면 데이터 처리와 이해에 필요한 모든 단계를 수행할 수 있습니다. Python은 아마도 가장 유연한 데이터 처리 방법이며, 이것이 대부분의 데이터 과학자가 Python을 주력 도구로 사용하는 이유입니다. 데이터 과학에 진지하다면 Python을 깊이 배우는 것이 좋은 생각일 것입니다!
## [강의 후 퀴즈](https://ff-quizzes.netlify.app/en/ds/quiz/13)
## 복습 및 자기 학습
## 복습 및 자기학습
**책**
<strong>도서</strong>
* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662)
**온라인 자료**
* 공식 [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 튜토리얼
* [Pandas 시각화에 한 문서](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
* [Pandas 시각화에 한 문서](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html)
**Python 배우기**
* [Turtle Graphics와 프랙탈로 Python을 재미있게 배우기](https://github.com/shwars/pycourse)
* [Python 첫걸음 떼기](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn의 학습 경로
**Python 학습**
* [거북이 그래픽과 프랙탈로 재미있게 배우는 Python](https://github.com/shwars/pycourse)
* [Python 기초 배우기](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)의 학습 경로
## 과제
[위 도전 과제에 대한 더 자세한 데이터 연구 수행](assignment.md)
[위 도전 과제에 대한 더 상세한 데이터 분석 수행](assignment.md)
## 크레딧
## 감사의 글
이 강의는 [Dmitry Soshnikov](http://soshnikov.com)가 ♥️를 담아 작성했습니다.
이 강의는 [Dmitry Soshnikov](http://soshnikov.com)의 ♥️로 제작되었습니다.
---
**면책 조항**:
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전을 권위 있는 출처로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 책임을 지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**면책 조항**:
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save