Python Dataframe Hinzufügen einer Beschreibung zur Spalte

Oct 12 2020

Ich möchte einer Spalte wie der Datenquelle, aus der ich diese gesammelt habe, eine Beschreibung hinzufügen. Ist so etwas möglich? Vor ungefähr 8 Jahren wurde eine ähnliche Frage gestellt: Hinzufügen eines eigenen Beschreibungsattributs zu einem Pandas-Datenrahmen ohne Antwort.

Mein Code:

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

Antworten

3 jakub Oct 12 2020 at 19:52

Ein Kommentar zu pandas-dev / pandas # 2485 schlägt vor, _metadataund zu verwenden .attrs. Sehenhttps://pandas.pydata.org/pandas-docs/stable/development/extending.html#define-original-properties für mehr Informationen.

Eine Möglichkeit, dies zu tun, besteht darin, eine Unterklasse zu erstellen pandas.DataFrameund hinzuzufügen _metadata.

Definieren Sie _metadatafür normale Eigenschaften, die an die Manipulationsergebnisse übergeben werden.

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"

Die Einstellung _metadatain der Unterklasse gibt an, dass diese Eigenschaften nach der Manipulation weitergegeben werden sollen. Im folgenden Beispiel wird .head()der Unterschied zwischen pd.DataFrameund dieser Unterklasse demonstriert .

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