假設:我有一個 Julia DataFrame,其列標題為article_id.
通常,我可以使用一些語法來宣告一個 DataFrame,比如df = DataFrame(CSV.File(dataFileName; delim = ",")). 如果我想獲取與已知屬性相關的列,我可以執行類似df.article_id. 我還可以通過執行索引該特定列df."article_id"。
但是,如果我創建了一個字串并將其分配給 的值article_id,例如str = "article_id",我無法通過 索引資料幀df.str:這樣做會出錯。這是有道理的,因為str它不是 DataFrame 的屬性,但 valuestr 是DataFrame 的屬性。如何索引 DataFrame 以獲取與 的值對應的列str?我正在尋找一些類似于df.valueof(str).
有什么解決辦法嗎?
uj5u.com熱心網友回復:
從DataFrames.jl 手冊的“入門”頁面:
列可以通過 df.col、df."col"、df[!, :col] 或 df[!, "col"] 直接訪問(即無需復制)。后兩種語法更靈活,因為它們允許傳遞包含列名稱的變數,而不僅僅是文字名稱。
所以你可以寫df[!, str],這將等同于df.article_idif str == "article_id"。
手冊的索引部分更詳細,當您需要更高級的索引型別或想要更深入地了解選項時。
uj5u.com熱心網友回復:
供額外參考。寫
df.colname
的時候:相當于寫getproperty(df, :colname)。因此,如果您將列名存盤在str變數中,您可以撰寫getproperty(df, str).
然而,正如 Sundar R 所指出的,使用索引而不是屬性訪問通常更方便。兩種最常見的模式df[!, str]是等效于getproperty(df, str)并在不復制列的情況下為您獲取列,以及df[:, str]為您獲取列的副本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/495895.html
下一篇:如何讀取特定資料并寫入csv檔案
