0 Daumen
378 Aufrufe

Ich habe einen Dataframe. Ich möchte die Spalten anonymisieren. Ich möchte auch die Möglichkeit einer erneuten Umbenennung ersparen. In der Tat, ich habe:

Comm    asd    toud    tochange
city   12      23      3
cita   43      32      5
...
citu   2        4        5
(vide)                                                         
Total 345      234      121


Und ich möchte:

Comm  party1  party2  party3
1    12      23      3
2    43      32      5
...
n   2        4        5
(vide)
Total 345      234      121

Aber ich möchte auch eine Möglichkeit beibehalten, sie schnell umzubenennen.

Im Moment habe ich:

df['Comm'] = 'comm' + pd.Series(pd.factorize(df['Comm'])[0]+1).astype(str)


Aber ich verliere die Möglichkeit, sie umzubenennen.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Anonymisierung und Umbenennung von Dataframe-Spalten

Um deinen Zielen gerecht zu werden, betrachten wir das Problem in zwei Teilen: Anonymisierung der Spaltendaten und Umbenennung der Spalten, wobei wir auch eine Möglichkeit für spätere Umbenennungen beibehalten wollen.

Teil 1: Anonymisierung der Spalten

Zunächst wird die Anonymisierung der 'Comm'-Spalte betrachtet, wie du bereits begonnen hast. Um jedoch die Originalnamen für eine mögliche spätere Verwendung zu speichern, ist es eine gute Praxis, ein Mapping von den originalen zu den anonymisierten Namen zu erstellen und dieses zu speichern.

Du hast bereits einen guten Ansatz gewählt, um die 'Comm'-Spalte zu anonymisieren. Um jedoch die Umbenennungsfähigkeit zu erhalten, sollten wir die ursprünglichen Namen und ihre anonymisierten Entsprechungen in einer Art Mapping speichern.

Teil 2: Umbenennung der Spalten

Für die Umbenennung der anderen Spalten ('asd', 'toud', 'tochange') in 'party1', 'party2', 'party3' kann eine direkte Methode verwendet werden. Die Herausforderung besteht jedoch darin, eine Methode zu erstellen, die es uns ermöglicht, diese Spalten später wieder umzubenennen, falls gewünscht.

Vorgehensweise:

1. Anonymisiere die 'Comm'-Spalte und speichere das Mapping.
2. Benenne die anderen Spalten um.
3. Speichere das Mapping der Spaltenumnennungen, um später bei Bedarf die Originalnamen wiederherstellen zu können.

Implementation in Python mit Pandas:

Zuerst importieren wir pandas und stellen einen beispielhaften Dataframe her:

python
import pandas as pd

# Beispiel-Datenframe
data = {
    'Comm': ['city', 'cita', 'citu'],
    'asd': [12, 43, 2],
    'toud': [23, 32, 4],
    'tochange': [3, 5, 5]
}
df = pd.DataFrame(data)

# Ursprüngliches Mapping speichern für 'Comm'
comm_original = df['Comm'].unique()  # Originalnamen


Nun anonymisieren wir die 'Comm'-Spalte und benennen die anderen Spalten um:

python
# Anonymisierung der 'Comm' Spalte
df['Comm'] = 'comm' + pd.Series(pd.factorize(df['Comm'])[0] + 1).astype(str)

# Mapping für die Umbenennung der anderen Spalten
column_mapping = {'asd': 'party1', 'toud': 'party2', 'tochange': 'party3'}

# Spaltenumbenennung durchführen
df.rename(columns=column_mapping, inplace=True)


Dieser Code behandelt die Anonymisierung von 'Comm' und die Umbenennung der anderen Spalten. Die Speicherung des comm_original und des column_mapping ermöglicht es uns, später auf die ursprünglichen Namen zurückzugreifen oder sie zu ändern, wenn nötig.

Es ist wichtig, das Mapping (comm_original und column_mapping) an einem sicheren Ort zu speichern, falls du später Entscheidungen über das Rückgängigmachen der Anonymisierung oder Umbenennung treffen möchtest.
Avatar von 4,6 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community