Ich sortiere ein CSV::Table
Objekt. Ich habe eine Tabelle mit Kopfzeilen ("date"
, "amount"
, "source"
) und O(50)
Einträge.Ruby CSV :: Tabelle an Ort und Stelle sortieren
Eingang:
data = CSV.table('filename.csv', headers:true) # note headers are :date, :source, :amount
amounts = []
data[:amount].each {|i| amounts << i.to_f}
data.sort_by! {|row| row[:amount]}
# error - not a defined function
data = data.sort_by {|row| row[:amount]}
# sorted but data is now an array not CSV::Table. would like to retain access to headers
ich einen Knall Funktion wollen ohne dabei die CSV::Table
Struktur der Tabelle an Ort und Stelle durch die "amount"
Spalte zu sortieren. Insbesondere möchte ich, dass das Ergebnis eine CSV :: Tabelle ist, so dass ich immer noch Zugriff auf die Header habe. Im Moment bekomme ich ein Array, was ich nicht will.
Ich bin sicher, dass es eine einfachere Möglichkeit gibt, dies zu tun, vor allem mit der CSV::Table
Klasse. Irgendeine Hilfe?
Was meinen Sie verlieren die Struktur bedeuten? – sawa
Gute Frage! Hoffte, dass die CSV :: Table-Klasse eine sort_by-Methode hatte, die eine CSV-Tabelle mit den gleichen Headern zurückgab. Es scheint, dass dies nicht der Fall ist - richtig? –