دعونا نكتب ونفهم شجرة القرار في بايثون من البداية! الجزء 3. مكتبة لتحليل بيانات الباندا

مرحبا هبر! أقدم انتباهكم إلى ترجمة المقال " Python で 0 か ら デ ィ シ ジ ョ ン ツ リ ー を 作 て 理解 す る (3. デ ー タ 分析 ​​ラ イ ​​ブ ラ Pandas 編) ".



هذه هي المقالة الثالثة في سلسلة. روابط إلى المقالات السابقة: أولاً ، ثانيًا



، سأشرح في هذه المقالة كيفية العمل مع مكتبة Pandas لإنشاء شجرة قرارات.



3.1 استيراد المكتبة



#  pandas  ,        pd
import pandas as pd


3.2 إطار وسلسلة البيانات



يستخدم Pandas هياكل مثل إطار البيانات والمتسلسلة.

دعنا نلقي نظرة على الجدول التالي الذي يشبه Excel.



صف واحد من البيانات يسمى سلسلة ، وتسمى الأعمدة سمات هذه البيانات ، ويسمى الجدول بأكمله إطار البيانات.





3.3 إنشاء إطار البيانات



نقوم بتوصيل جدول بيانات Excel باستخدام read_excel أو ExcelWriter

#  Excel   ,     ipynb
df0 = pd.read_excel("data_golf.xlsx")
 
#  DataFrame  HTML  
from IPython.display import HTML
html = "<div style='font-family:\"メイリオ\";'>"+df0.to_html()+"</div>"
HTML(html)
 
#   Excel  (with   f.close)
with pd.ExcelWriter("data_golf2.xlsx") as f: 
       df0.to_excel(f)


إنشاء إطار بيانات من قاموس (مصفوفة ارتباطية ): يجمع القاموس بيانات أعمدة DataFrame معًا



#   :    
 
d = {
    "":["","","","","","","","","","","","","",""],
    "":["","","","","","","","","","","","","",""], 
    "":["","","","","","","","","","","","","",""],
    "":["","","","","","","","","","","","","",""],
 
"":["×","×","○","○","○","×","○","×","○","○","○","○","○","×"],
}
df0 = pd.DataFrame(d)


تكوين إطارات البيانات من المصفوفات: تجميع البيانات من صفوف DataFrame



#   :     
d = [["","","","","×"],
     ["","","","","×"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","×"],
     ["","","","","○"],
     ["","","","","×"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","○"],
     ["","","","","×"],
    ]
#        columns  index .  ,   ,    .

df0 = pd.DataFrame(d,columns=["","","","",""],index=range(len(d)))


3.4 الحصول على المعلومات من الجدول



#    
 
#    
print(df0.shape) #  (14, 5)
 
#    
print(df0.shape[0]) #  14
 
#   
print(df0.columns) #  Index(['', '', '', '', ''], dtype='object')
 
#    (  df0 -    )
print(df0.index) #  RangeIndex(start=0, stop=14, step=1)


3.5 استرداد الموضع iloc القيم



#  
 
#  ,    
#       №1 ( )
print(df0.loc[1,""]) #  

#  ,       
#        1,2,4,      Data Frame-  
df = df0.loc[[1,2,4],["",""]]
print(df)
# 
#                    
# 1                               ×
# 2                        ○
# 3                            ○
# 4                            ○

# iloc     .    0.
#      1  3,    .   iloc  ,   1:4,  4-   . 
df = df0.iloc[1:4,:-1]
print(df)
# 
#                
# 1                              
# 2                    
# 3                        


#      (Series)
#      . s  Series
s = df0.iloc[0,:]
#  ,    ,      s[" "]
print(s[""]) #  

#       (numpy.ndarray).
print(df0.values)


3.6 تكرار البيانات ، وتصفح البيانات مع عناصر متكررة



#  ,  
#     .     .
for i,row in df0.iterrows():
    # i    ( ), row  Series
    print(i,row)
    pass

#     .    .
for i,col in df0.iteritems():
    # i   , col  Series
    print(i,col)
    pass


3.7 عدد مرات تكرار value_counts



#   
#      . s  Series
s = df0.loc[:,""]

#     
print(s.value_counts())
# 
#     5
#     5
#     4
# Name: , dtype: int64

# ,   ,   “”
print(s.value_counts()[""]) #  5


3.8 استرداد بيانات الاستعلام المحددة



#   
#  ,   - .
print(df0.query("==''"))
# 
#                    
# 0                            ×
# 1                            ×
# 7                            ×
# 8                            ○
# 10                                ○

#  ,   - ,     
print(df0.query("=='' and =='○'"))
# 
#                    
# 8                            ○
# 10                                ○

#  ,   - ,     
print(df0.query("=='' or =='○'"))
# 
#                    
# 0                            ×
# 1                            ×
# 2                        ○
# 3                            ○
# 4                            ○
# 6                        ○
# 7                            ×
# 8                            ○
# 9                                ○
# 10                                ○
# 11                            ○
# 12                                ○


شكرا للقراءة!



سنكون سعداء للغاية إذا أخبرتنا ما إذا كنت قد أحببت هذه المقالة ، هل كانت الترجمة واضحة ، هل كانت مفيدة لك؟



All Articles