varianza tutorial index cuartiles cuantiles correlaciones correlacion python numpy pandas scatter

python - tutorial - Creando Pandas Dataframe entre dos matrices Numpy, luego dibuja un diagrama de dispersiĆ³n



pandas python (3)

Hay varias formas de crear DataFrames. Dados los vectores de columna unidimensionales, puede crear un DataFrame pasándole un dictado cuyas claves son nombres de columna y cuyos valores son los vectores de columna unidimensionales:

import numpy as np import pandas as pd x = np.random.randn(5) y = np.sin(x) df = pd.DataFrame({''x'':x, ''y'':y}) df.plot(''x'', ''y'', kind=''scatter'')

Soy relativamente nuevo con muchos y pandas (soy un físico experimental, así que he estado usando ROOT durante años ...). Una gráfica común en ROOT es una gráfica de dispersión 2D donde, dada una lista de valores x e y, crea una gráfica de dispersión de tipo "mapa de calor" de una variable frente a la otra.

¿Cómo se logra esto mejor con adormecimiento y pandas? Estoy tratando de usar la función Dataframe.plot() , pero me cuesta incluso crear el Dataframe.

import numpy as np import pandas as pd x = np.random.randn(1,5) y = np.sin(x) df = pd.DataFrame(d)

En primer lugar, este marco de datos tiene forma (1,2), pero me gustaría que tuviera forma (5,2). Si puedo obtener el marco de datos con la forma correcta, estoy seguro de que puedo averiguar la función DataFrame.plot() para dibujar lo que quiero.


Para hacer lo que quieres, no usaría los métodos de trazado de DataFrame. También soy un antiguo físico experimental y, según mi experiencia con ROOT, creo que el análogo de Python que deseas se logra mejor con matplotlib. En matplotlib.pyplot hay un método, hist2d (), que te dará el tipo de mapa de calor que estás buscando.

En cuanto a la creación del marco de datos, una forma fácil de hacerlo es:

df=pd.DataFrame({''x'':x, ''y'':y})


Como complemento, puede usar las series de pandas , pero se debe haber creado el DataFrame .

import numpy as np import pandas as pd x = np.linspace(0,2*np.pi) y = np.sin(x) #df = pd.DataFrame() #df[''X''] = pd.Series(x) #df[''Y''] = pd.Series(y) # You can MIX df = pd.DataFrame({''X'':x}) df[''Y''] = pd.Series(y) df.plot(''X'', ''Y'', kind=''scatter'')

Esta es otra manera que podría ayudar

import numpy as np import pandas as pd x = np.linspace(0,2*np.pi) y = np.sin(x) df = pd.DataFrame(data=np.column_stack((x,y)),columns=[''X'',''Y''])

Y también, encuentro los ejemplos de karlijn (DatacCamp) muy útiles

import numpy as np import pandas as pd TAB = np.array([['''' ,''Col1'',''Col2''], [''Row1'' , 1 , 2 ], [''Row2'' , 3 , 4 ], [''Row3'' , 5 , 6 ]]) dados = TAB[1:,1:] linhas = TAB[1:,0] colunas = TAB[0,1:] DF = pd.DataFrame( data=dados, index=linhas, columns=colunas ) print(''/nDataFrame:'', DF)