Mostra la pàginaRevisions anteriorsQuè hi enllaçaExporta a PDFTorna dalt Aquesta pàgina és només de lectura. Podeu veure'n el codi font, però no podeu canviar-la. Consulteu el vostre administrador si penseu que això és degut a algun error. = Python Pandas * <code bash>pip3 install pandas</code> * soporte para excel: <code bash>pip3.9 install openpyxl # needed to load Excel .xlsx files pip3.9 install xlrd # needed to load Excel old .xls files) </code> * 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> df.loc["valor":"valor","columna":"columna"] list(df.loc[:,"Columna"]) # devuelve como lista los valores de la columna, para todas las filas </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 <code python> # segundo bokeh plot con pandas from bokeh.plotting import figure from bokeh.io import output_file, show import pandas df=pandas.read_csv("https://pythonizing.github.io/data/bachelors.csv") x=df["Year"] y=df["Engineering"] output_file("Line.html") f=figure() f.line(x,y) show(f) </code> <code python> import pandas from bokeh.plotting import figure, output_file, show df=pandas.read_excel("https://github.com/pythonizing/data/blob/master/verlegenhuken.xlsx",sheet_name=0) df["Temperature"]=df["Temperature"]/10 df["Pressure"]=df["Pressure"]/10 p=figure(width=500,height=400,tools='pan') p.title.text="Temperature and Air Pressure" p.title.text_color="Gray" p.title.text_font="arial" p.title.text_font_style="bold" p.xaxis.minor_tick_line_color=None p.yaxis.minor_tick_line_color=None p.xaxis.axis_label="Temperature (°C)" p.yaxis.axis_label="Pressure (hPa)" # 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") show(p) </code> * desde Jupyter Notebook problema leyendo fichero desde URL development/python/pandas.txt Darrera modificació: 10/10/2024 07:14per mate