Python Dataframe Agregar una descripción a la columna

Oct 12 2020

Quiero agregar una descripción a una columna como la fuente de datos de donde recopilé esto. ¿Es posible tal cosa? Se hizo una pregunta similar hace unos 8 años en Agregar mi propio atributo de descripción a un Pandas DataFrame sin respuesta.

Mi código:

df=
     
index            colA          colB
#description     from SensorA   SensorB   # Description row 
1
2
3

Respuestas

3 jakub Oct 12 2020 at 19:52

Un comentario sobre pandas-dev / pandas # 2485 sugiere usar _metadatay .attrs. Verhttps://pandas.pydata.org/pandas-docs/stable/development/extending.html#define-original-properties para más información.

Una forma de hacer esto es crear una subclase pandas.DataFramey agregar _metadata.

Defina _metadatalas propiedades normales que se pasarán a los resultados de la manipulación.

import pandas as pd

class SubclassedDataFrame(pd.DataFrame):

    # normal properties
    _metadata = ['description']

    @property
    def _constructor(self):
        return SubclassedDataFrame

data = {"a": [1, 2, 3], "b": [10, 12, 13]}

df = SubclassedDataFrame(data)

df.description = "About my data"

La configuración _metadataen la subclase indica que estas propiedades deben propagarse después de la manipulación. Consulte el ejemplo que se utiliza a .head()continuación para ver una demostración de la diferencia entre pd.DataFrameesta subclase.

data = {"a": [1, 2, 3], "b": [10, 12, 13]}

df = SubclassedDataFrame(data)
df.description = "About my data"
df.head().description  # prints 'About my data'

df_orig = pd.DataFrame(data)
df_orig.description = "About my data"
df_orig.head().description  # raises AttributeError