Spalten bearbeiten

openrefinehistHub 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 hinzu zu fü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. In einem späteren Blogbeitrag werden wir uns intensiver mit der Sprache befassen.

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 Bearbeitungsfenser ü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:

openrefine add column based on this column

Anfang 2018 werden wir das Reconciling beschrieben, also den Abgleich eines OpenRefine-Projekts mit anderen Daten, beispielsweise mit Wikidata. Dort werden wir wieder auf das Hinzufügen von Spalten zurückkommen. Denn durch das Reconciling 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.