Dataframe Python Adicionando uma descrição à coluna

Oct 12 2020

Quero adicionar uma descrição a uma coluna como a fonte de dados de onde eu coletei isso. Isso é possível? Houve uma pergunta semelhante feita há cerca de 8 anos em Adicionando meu próprio atributo de descrição a um DataFrame do Pandas sem resposta.

Meu código:

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

Respostas

3 jakub Oct 12 2020 at 19:52

Um comentário sobre pandas-dev / pandas # 2485 sugere o uso de _metadatae .attrs. Vejohttps://pandas.pydata.org/pandas-docs/stable/development/extending.html#define-original-properties Para maiores informações.

Uma maneira de fazer isso é criar uma subclasse pandas.DataFramee adicionar _metadata.

Defina _metadataas propriedades normais que serão passadas para os resultados da manipulação.

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"

A configuração _metadatana subclasse indica que essas propriedades devem ser propagadas após a manipulação. Veja o exemplo usando .head()abaixo para uma demonstração da diferença entre pd.DataFramee esta subclasse.

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