¡Escribamos y entendamos el árbol de decisiones en Python desde cero! Parte 3. Biblioteca de análisis de datos de Pandas

¡Hola, Habr! Presento a su atención la traducción del artículo " Python で 0 か ら デ ィ シ ジ ョ ン ツ リ ー を 作 っ て 理解 す る (3. デ ー タ 分析 ​​ラ イ ​​ブ ラ リ Pandas 編) ".



Este es el tercer artículo de una serie. Enlaces a artículos anteriores: primero , segundo



En este artículo, explicaré cómo trabajar con la biblioteca Pandas para crear un árbol de decisiones.



3.1 Importando la biblioteca



#  pandas  ,        pd
import pandas as pd


3.2 Marco de datos y series



Pandas usa estructuras como Data frame y Series.

Echemos un vistazo a la siguiente tabla similar a Excel.



Una fila de datos se denomina Serie, las columnas se denominan atributos de estos datos y la tabla completa se denomina Marco de datos.





3.3 Crear marco de datos



Conectamos una hoja de cálculo de Excel usando read_excel o 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)


Creación de un marco de datos a partir de un diccionario (matriz asociativa): el diccionario reúne los datos de las columnas del marco de datos



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


Creación de marcos de datos a partir de matrices: recopilación de datos de filas de marcos de datos



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

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


3.4 Obtener información de la tabla



#    
 
#    
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 Recuperación de valores loc 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 Recorrer los datos, pasando por los datos con sus propios elementos



#  ,  
#     .     .
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 Frecuencia de value_counts



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

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

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


3.8 Recuperación de datos de consulta específicos



#   
#  ,   - .
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                                ○


¡Gracias por leer!



Estaremos muy felices si nos dices si te gustó este artículo, fue clara la traducción, te fue útil?



All Articles