質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

Q&A

解決済

2回答

1346閲覧

Julia DataFrameからcsvに保存する際の列名を指定する方法

hrdhrd0422

総合スコア4

Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

0グッド

0クリップ

投稿2021/06/20 00:28

Dataframeからcsvを作成する際に、カラム名に文字列を使いたいです。
計算に使った物理量を列名に入れて何の値を使って計算したのかはっきり記録しておきたいためです。
例えば以下で、列名に文字列を使おうとするとエラーになります。
DataFrameの列名は変更できなくても、出力されるcsvの列名を指定することはできないでしょうか。

using DataFrames x = 10 # 計算に使った物理量 data = [ 1 0.179324 2 0.818923 3 0.979487 4 0.882494 5 0.00530208] #計算結果 df = DataFrame(data, [:A, :B]) # これはエラーにならない 列名はsymbolというものらしい # df = DataFrame(data, [:"Time (ms)", :"$x"*"変化量"]) # これはエラーになるがこのようなことをしたい df |> CSV.write("ファイル名.csv") # df |> CSV.write("ファイル名.csv", 列名を指定したい=["Time (ms)", "$x"*"変化量"])

出力するcsvの列名を文字列で指定する方法を教えていだだけないでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

結論からいうと,DataFrameを作成する時に

julia

1df = DataFrame(data, Symbol.(["Time (ms)", "$(x)変化量"]))

のようなコードで自由にカラム名を設定できるのではないかと思います。

julia-replのヘルプモード(?を入力すると出てくるモード)を使うと
色々参考になるのではないかと思います。以下は蛇足です。

DataFrameのヘルプを表示します。

julia

1julia> using DataFrames 2 3help?> DataFrame # `?`を押すとhelpモードになる 4 5 Constructors 6 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡ 7 8 ... 9 DataFrame(columns::AbstractVecOrMat, names::Union{AbstractVector, Symbol}; 10 makeunique::Bool=false, copycols::Bool=true) 11 ...

となり行列Symbolのベクトルの引数でDataFrameができることが分かります。
さらにhelpモードで適当にSymbol型を入力すると

julia

1help?> :xyz # `?`を押すとhelpモードになる 2 3 ... 4 Symbol(x...) -> Symbol 5 6 Create a Symbol by concatenating the string representations of the 7 arguments together. 8 9 Examples 10 ≡≡≡≡≡≡≡≡≡≡ 11 12 julia> Symbol("my", "name") 13 :myname 14 15 julia> Symbol("day", 4) 16 :day4 17 ... 18

と表示され,Symbol(文字列)Symbol型に変換できそうです。
[Symbol("ほげ"),Symbol(...,)]と入力するのも面倒なので,文字列ベクトルを
Symbol.(文字列ベクトル)として一度に変換してしまいます。

自分も今年の2月から使いはじめたばかりですが,ネットでの検索の他

  • ヘルプモードで調べてみる
  • パッケージ名.[Tab]でどんな関数・型があるか調べてみる

とかして,結構なんとかやっています。とにかくreplモードで色々やってみることです。
以上参考まで。

投稿2021/06/30 12:37

ujimushi_sradjp

総合スコア2087

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hrdhrd0422

2021/07/02 04:52

非常に勉強になりました。ありがとうございます。
guest

0

ベストアンサー

すみません。回答になっていませんでした。

julia

1df |> CSV.write("ファイル名.csv", header=["Time (ms)", "$(x)変化量"])

のような感じで変えられます。

投稿2021/07/01 16:07

ujimushi_sradjp

総合スコア2087

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問