Python Dataframe Aggiunta di una descrizione alla colonna

Oct 12 2020

Voglio aggiungere una descrizione a una colonna come la fonte dei dati da cui l'ho raccolta. È possibile una cosa del genere? È stata posta una domanda simile circa 8 anni fa in Adding my own description attribute to a Pandas DataFrame senza risposta.

Il mio codice:

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

Risposte

3 jakub Oct 12 2020 at 19:52

Un commento su pandas-dev / pandas # 2485 suggerisce di utilizzare _metadatae .attrs. Vederehttps://pandas.pydata.org/pandas-docs/stable/development/extending.html#define-original-properties per maggiori informazioni.

Un modo per farlo è creare una sottoclasse pandas.DataFramee aggiungere _metadata.

Definire _metadatale proprietà normali che verranno passate ai risultati della manipolazione.

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"

L'impostazione _metadatanella sottoclasse indica che queste proprietà dovrebbero essere propagate dopo la manipolazione. Vedere l'esempio di utilizzo di .head()seguito per una dimostrazione della differenza tra pd.DataFramee questa sottoclasse.

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