Spalten bearbeiten

HistHub befasst sich in einer Blogserie mit der Aufbereitung und Anreicherung von Daten in OpenRefine. Alle Beiträge der Serie werden in einer Übersicht gesammelt.

Dabei haben wir festgestellt, dass OpenRefine stark über die Spalten organisiert ist. Bearbeitungsschritte, Facetten oder Filter werden jeweils für eine Spalte aufgerufen. Was ist denn nun, wenn wir den Inhalt von Spalten verändern wollen? Damit befasst sich dieser Beitrag.

Im Beitrag zum Bearbeiten von Spalten und Zellen haben wir bereits gelernt, Inhalte von Spalten zu trennen. Dafür gibt es ein eigenes Bearbeitungsfenster, das uns die Sache erleichtert. Jetzt werden wir andere Möglichkeiten zum Hinzufügen einer neuen Spalte betrachten.

Spalten hinzufügen

OpenRefine bietet verschiedene Wege, Spalten hinzuzufügen. Als Programm zum Reinigen und Ergänzen von Daten bietet es, anders als beispielsweise Excel, keine Option zum Einfügen einer leeren Spalte. Es gibt jedoch Möglichkeiten, Inhalte aus einer Spalte in neue Spalten aufzuteilen oder neu zu gliedern. Diese werden im Folgenden gezeigt. Datengrundlage ist weiterhin das Projekt mit den Metadaten zu den Fotografien von Annemarie Schwarzenbach.

Add column based on this column

OpenRefine geht davon aus, dass wir die bestehenden Daten in einem Projekt weiter bearbeiten wollen. Das Programm ist explizit nicht auf das Erheben von Daten ausgelegt, entsprechend ist das Eintippen von Daten in Zellen hier eher mühsam.

Wollen wir nun eine neue Spalte bilden, die von einer der bestehenden Spalten ausgeht, wählen wir im Spaltenmenü «Edit column» -> «Add column based on this column». Standardmässig ist im sich daraufhin öffnenden Fenster «value» ausgefüllt, demnach wird in jeder Zelle der neuen Spalte der Wert der Zelle der bereits vorhandenen Spalte ausgefüllt. Eine solche simple Kopie einer Spalte ist immer dann sinnvoll, wenn das Original behalten werden soll. Dies beispielsweise vor weiteren Transformationen wir dem Abgleich mit externen Daten.

Der neuen Spalte muss ein Name gegeben werden. Im Bearbeitungsfeld kann mit GREL («General Refine Expression language») der Inhalt angepasst werden. Soll wie im obigen Beispiel bei allen Zellen in der neuen Spalte ein Text hinzugefügt werden, wird dieser neue Text zwischen ‚ ‚ gesetzt. «Value» verweist auf den Wert in der Zelle der Ursprungsspalte. Die verschiedenen Elemente werden mit einem «+» verbunden. Im Tab «Help» im Bearbeitungsfenster sind weitere GREL-Befehle aufgeführt. Wir haben der Sprache einen eigenen Beitrag gewidmet.

Spalten verbinden

Sollen die Inhalte mehrerer Spalten in einer einzigen zusammengefasst werden, gibt es dazu zwei mögliche Formeln. Zunächst muss wie eben das Bearbeitungsfenster über Spaltenmenü -> «Edit column» -> «Add column based on this column» aufgerufen werden.

cells["Column 1"].value + cells["Column 2"].value

Wenn in allen Spalten, die zusammengefügt werden sollen, keine Leerzeichen im Namen vorkommen, geht auch der kürzere Befehl:

cells.Column1.value + cells.Column2.value

Spalten trennen

OpenRefine bietet eine einfache Oberfläche, um Spalten zu trennen. Diese wird in diesem Beitrag gezeigt. Es ist jedoch auch möglich, über „Add column based on this column“ Spalten zu trennen und dabei nur bestimmte Teile zu behalten. Der GREL-Befehl dafür ist:

value.split("X")[Y]

Bei („X“) ist das Zeichen einzufügen, bei dem geteilt werden soll. Bei [Y] wird angegeben, welcher Teil behalten werden soll. Dabei wird bei 0 angefangen zu zählen. Wollen wir beispielsweise aus dem String «Spanien, San Cugat: Stadtansicht» das Wort «Spanien» herauslösen, ist der richtige Befehl:

value.split(",")[0]

Komplizierter wird es, wenn im obigen Beispiel der Ortsname herausgegriffen werden soll:

value.split(",").join(":").split(":")[1]

Weil unser Beispiel nach dem Muster «Land, Ort: Kurztitel» aufgebaut ist, müssen wir hier sowohl bei «,» als auch bei «:» trennen. «Split» lässt nicht mehrere Argumente zu, deshalb müssen wir zuerst trennen, dann wieder zusammenfügen. Zum Schluss geben wir mit [1] den zweiten Teil aus.

Die einzelnen Teile der Formel werden mit «.» zusammengehängt. Um die Formel zu verstehen, können diese Teile nacheinander eingefügt werden. In der Vorschau wird dann jeweils das aktuelle Ergebnis angezeigt:

Das Hinzufügen von Spalten begegnet uns im Beitrag zum Reconciling erneut. Als Reconciling wird der Abgleich eines OpenRefine-Projekts mit anderen Daten, beispielsweise mit Wikidata, bezeichnet. Dadurch ist es möglich, zusätzliche Informationen aus dem anderen Datenbestand abzugreifen und in das eigene Projekt einzufügen. So können beispielsweise Ortsnamen um Koordinaten oder Personen mit Lebensdaten ergänzt werden.

Fragen, Anregungen oder Wünsche zu histHub oder zu OpenRefine nehmen wir gerne per Mail entgegen.