2016-11-25 2 views
2

In der wikibook documentation wird gesagt, dass delete! kann auf eine Reihe von Spalten angewendet werden, aber ich bin nicht in der Lage, es zu bekommen, um mehrere Spalten nach Namen in einer einzigen Passage zu löschen.Wie mehrere Spalten nach Namen in einem Julia Dataframe entfernen?

Ich habe auch versucht, Liste Verständnis, aber ich habe immer noch einen Fehler (während für mehrere Datenrahmen nur funktioniert es):

[delete!(df, :colname) for df in [df1, df2, df3], colname in ["col2","col5"]]; 

Jeder Hinweis?

Antwort

0

Wie Sie herausgefunden haben, verwendet Dataframes ein Symbol (:foo) anstelle einer Zeichenkette ("foo"), um eine Spalte zu indizieren. Die Erklärung, warum es so ist, wird von einem der Schöpfer der Sprache hier gegeben: https://stackoverflow.com/a/23482257/4746618

+0

Sehr interessante Diskussion. Es ähnelt mir vage den C-Zeigern und dem C '*' Operator. Danke, dass Sie mich darauf hingewiesen haben. – Antonello

0

gut, so scheint es, dass das Schreiben auf mich SO die Inspiration:

[delete!(df, colname) for df in [df1, df2, df3], colname in [:col2,:col5]]; 

oder

[delete!(df,[:col2,:col5]) for df in [df1, df2, df3]]; 

(ich habe noch zu verstehen, was dieses seltsame : Symbol bedeutet, in Julia, meine Schuld. . ;-))

+0

Wenn es vor einem Buchstaben verwendet wird, bedeutet dies, dass dieser Gegenstand ein Symbol ist. Pakete wie DataFrames verwenden Symbole, um Spaltennamen anstelle von Strings (auch bekannt als "a") zu bezeichnen. Wenn in einer Situation wie 'a [1,:]' das ':' das Konzept von allen verwendet wird, würde dies jede Spalte in der ersten Zeile zurückgeben. –

Verwandte Themen