Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
development:python:pandas [10/10/2024 05:02] – [pandas + bokeh ejemplos] matedevelopment:python:pandas [10/10/2024 07:14] (actual) – [Python Pandas] mate
Línia 5: Línia 5:
 </code> </code>
  
-== bokeh ejemplos+  * Estilos: [[https://docs.bokeh.org/en/latest/docs/user_guide/styling/plots.html#ug-styling-plots]] 
 +  * datos: [[https://pythonhow.com/media/data/supermarkets.json]] 
 + 
 +varios 
 +== importar en dataframe 
 +  * ''pandas.read_csv('data.txt',header=None)'' 
 +  * ''pandas.read_json('data.json')'' 
 +== columnas 
 +<code python>df = pandas.read_csv('data.txt',header=None)</code> 
 +  * ''header=None'' para archivos sin nombres de columnas en la primera fila 
 +  * acceder columnas:<code python>df.columns 
 +df.columns[inicial:final]</code> 
 +    * pueden ser indices numéricos o nombres 
 +  * acceder indices:<code python>df.index</code> 
 +  * asignar nombres de columna:<code python>df.columns = ["Col1","Col2","Col3"]</code> 
 +  * asignar indice:<code python>df.set_index("nom_col"[,inplace=True, drop=False])</code> 
 +    * ''inplace'': los cambios se aplican en el mismo objeto (variable), Por defecto, los cambios se deberán guardar en otra variable. 
 +    * ''drop'': Con False, no saca la columna de los datos para convertirla en índice 
 +== manipulación datos 
 +Para acceder a datos en el dataframe es como un sistema de coordenadas 
 +=== label based indexing 
 +  * loc[start_value_row;final_value_row,start_column_header:final_column_header]
 <code python> <code python>
-from bokeh.plotting import figure, output_file, show +df.loc["valor":"valor","columna":"columna"] 
-  +list(df.loc[:,"Columna"]# devuelve como lista los valores de la columna, para todas las filas
-p=figure(width=500,height=400, tools='pan'+
-  +
-p.title.text="Cool Data" +
-p.title.text_color="Gray" +
-p.title.text_font="times" +
-p.title.text_font_style="bold+
-p.xaxis.minor_tick_line_color=None +
-p.yaxis.minor_tick_line_color=None +
-p.xaxis.axis_label="Date" +
-p.yaxis.axis_label="Intensity"     +
-  +
-p.line([1,2,3],[4,5,6]) +
-output_file("graph.html") +
-show(p)+
 </code> </code>
 +  * se puede indicar solo un valor en los rangos
  
 +=== position based indexing
 +iloc[start_value_row;final_value_row,start_column_header:final_column_header]
 +<code python>
 +df.iloc[1:4,2:5]
 +</code>
 +  * ''iloc'' se comporta como cualquier **slice** en python, el último valor no está incluido. Así, en el ejemplo cogería las filas 1,2,3 y las columnas 2,3,4
 +
 +== borrar columnas
 +  * ''drop("fila"|"columna")''
 +  * los cambios no son ''implace''
 +<code python>
 +df.drop("filas",0)
 +df.drop(df.index[0:3],0) # elimina las filas 0,1,2
 +df.drop(df.columns[0:3],1) # elimina las columnas 1,2
 +</code>
 +
 +== añadir columnas
 +<code python>df.shape # tupla con número de filas y columnas
 +df.shape[0] # número de filas
 +df.shape[1] # número de columnas
 +</code>
 +<code python>df["new_column"]=df.shape[0]*["Valor"] # ha de coincidir con el número de filas en el índice</code>
 +<code python>df["new_column"]=df.["columna"] + "," + "Valor"</code>
 +
 +== Transposición, para añadir registro ¿?
 +<code python>df_T = df.T # función de transposición
 +df_T["nuevo_registro"] = ["valores_columnas"[,"valores_columnas",...]]
 +df = df_T.T # función de transposición
 +</code>
 == pandas + bokeh ejemplos == pandas + bokeh ejemplos
 <code python> <code python>
Línia 53: Línia 90:
 df["Pressure"]=df["Pressure"]/10 df["Pressure"]=df["Pressure"]/10
    
-p=figure(plot_width=500,plot_height=400,tools='pan')+p=figure(width=500,height=400,tools='pan')
    
 p.title.text="Temperature and Air Pressure" p.title.text="Temperature and Air Pressure"
Línia 64: Línia 101:
 p.yaxis.axis_label="Pressure (hPa)"     p.yaxis.axis_label="Pressure (hPa)"    
    
-p.circle(df["Temperature"],df["Pressure"],size=0.5)+# old versions: 
 +p.circle(df["Temperature"],df["Pressure"],size=0.5) 
 + 
 +p.scatter(x=df["Temperature"],y=df["Pressure"],size=0.5)
 output_file("Weather.html") output_file("Weather.html")
 show(p) show(p)
 </code> </code>
 +  * desde Jupyter Notebook problema leyendo fichero desde URL
  
  
  • development/python/pandas.1728561760.txt.gz
  • Darrera modificació: 10/10/2024 05:02
  • per mate