es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dividir el dataframe en dataframe más pequeños según los nombres de columna.

Estoy haciendo una tarea de series temporales/LSTM y tengo un conjunto de datos de acciones: https://www.kaggle.com/camnugent/sandp500

El problema es que necesito dividir el marco de datos principal en marcos de datos más pequeños por el nombre de cada empresa. ¿Hay alguna manera rápida de hacer esto? porque hay decenas de nombres de empresas, he visto que esto se puede hacer con iloc, pero el esfuerzo es demasiado.

df = pd.read_csv(‘all_stocks_5yr.csv’, parse_dates=[‘date’])
df[‘date’] = pd.to_datetime(df[‘date’])

grouped_df = df.groupby(‘Name’)

Aquí se puede ver mejor:

View post on imgur.com

Como se puede ver, hay diferentes empresas con diferentes nombres, lo que quiero es un marco de datos para cada empresa. La ayuda es muy apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera rápida y fácil de dividir el dataframe principal en dataframes más pequeños por el nombre de cada empresa utilizando la función groupby() en Pandas.

    Ya has comenzado con el código correcto al agrupar el dataframe por Nombre utilizando el siguiente código:

    grouped_df = df.groupby ('Name')
    

    Ahora, para obtener un dataframe para cada empresa, puedes iterar sobre los grupos y crear un diccionario de dataframes de la siguiente manera:

    company_dfs = {}
    
    for company, data in grouped_df:
        company_dfs [company] = data
    

    Esto creará un diccionario donde las claves son los nombres de las empresas y los valores son los dataframes correspondientes. Puedes acceder a los dataframes para cada empresa utilizando las claves del diccionario. Por ejemplo, para obtener el dataframe de la empresa ‘AAPL’, puedes usar:

    aapl_df = company_dfs ['AAPL']
    

    Esto te dará un dataframe que contiene solo los datos para la empresa ‘AAPL’.

    Ten en cuenta que este enfoque es mucho más rápido y fácil que usar iloc para dividir el dataframe para cada empresa, especialmente si hay decenas de nombres de empresas.

Comments are closed.