どうでも良いかもいれませんが正しくは、Comma Separated Valuesの略語で、コンマ(,)で区切りを定義しているデータのことで、拡張子は”.csv”です。
今回この”csvデータ”をPythonで読み込んでグラフ化する方法について解説していきますが、Pandas等のライブラリを使用するため、環境が整っていない方は”ANACONDA”のインストールをお勧めします!!
私は普段お気に入りのIDE(開発統合環境)でVisualStudioCodeを使用してます。Python環境の整備がまだという方は☟☟☟の記事を参考にして下さい。
読んで得する人は?Pythonでcsvを扱う人≒データサイエンス系エンジニア
前述したようにcsvデータを読み込むことは現場で多く発生します!!
データサイエンティストや研究系のエンジニアの方は、読み込んだデータに統計処理を施したり、データを使って機械学習や分析を行ったりします。
なので今回この記事を読んで得する方はこちら☟☟☟
- Pythonでcsvデータを読み込んでなんかしたい人
- 機械学習、AI系のエンジニア・データサイエンティストを志す方
- Pythonの”Pandas”これ『パンダス』と読みます.ギリ知ってた方
Pandasでcsvデータを読み込み サンプルコードあり
①基礎 同一フォルダ上のデータを読み込む
下準備として、同一フォルダ上にcsv-read.py(プログラムデータ)sample.csv(読み込むcsvデータ)を保存します。
コードはこちら☟☟☟
import pandas as pd #pandasをimport
data = pd.read_csv('sample.csv') #csvデータ読み込み
print(data) #読み込んだデータを表示
デバック(F5キー)の結果はこちら☟☟☟
下にスクロールしていくと…
②応用 ファイルパスを指定してデータを読み込む
それではコードを書いていきます!!☟☟☟
# モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# ファイル選択ダイアログの表示
root = tkinter.Tk() root.withdraw()
# ファイルの拡張子
fTyp = [("","*")] or fTyp = [("","*.csv")]
fTyp = [("csv-file","*.csv"), ("All-file","*")]
# フォルダパスを取得
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo('解析プログラム','ファイルを選択してください!')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
print(file)
# ファイルパスの認識
file1 = file.replace('/', os.sep)
file_name = os.path.basename(file)
data_path = os.path.dirname(file1)
os.chdir(data_path)
print(file_name)
# csvファイル読み込み
data = pd.read_csv(file_name,encoding = "utf-8",skiprows = 100)
skiprows = 5
encoding="shift_jis" or "utf-8"
print(data)
#データの読み込み
data = pd.read_csv('sample.csv')
print(data)
このコードをデバッグするとまず…
確認のダイアログが出ますので、『OK』をクリックします。そうすると…
読み込むファイルの選択画面が開かれますので、任意に指定し、読み込みます。
デバッグの結果…
同一フォルダ内で読み込んだ時と同様ですので、正しく読み込めています(*’ω’*)
③可視化 読み込んだデータをグラフ化する。
さきほどのコードに☟のグラフ化コードを追加して下さい!!
[python]</pre> <pre class="language-python"><code>#Y軸(振幅)の定義 y = np.array(data) y = y.reshape(-1,) #X軸(時間軸)の定義 samp = 100 #サンプリング周波数(Hz) samp_t = 1/samp x = np.array(np.arange(0,(samp_t*len(y)),(1/samp))) #グラフ化 plt.title("Graph") plt.xlabel("time(s)") #横軸ラベル plt.ylabel("Voltage(v)") #縦軸ラベル plt.grid(True)#目盛表示 plt.tight_layout() #全てのプロットをボックス内に plt.plot(x,y) plt.show()</code></pre> <pre>[/python]
実行し、さっきと同じようにファイルを選択すると…
散布図が表示されます(*’ω’*)
まとめ csvの読み込みはpandasで簡単にできちゃう
今回はPandasとMatplotlibを使ってcsvデータを読み込み、グラフ化しました。以下まとめです。
- Pandasを使えばcsvが簡単に読み込める。
- 任意のファイルパスを指定してデータを読み込むには少し工夫が必要
- グラフ化はMatplotlibで。
Matplotlibを使ったグラフ化については次回以降に詳しく触れていきます!!
応用編として、機械学習に関する記事も書いてます!!良かったら読んでみて下さい(*’ω’*)
良くPythonの勉強はどうやって?と聞かれますが、『完全独学』です。最後に高卒者の私が一人で勉強してとても助けられた書籍を紹介します(*’ω’*)
Python機械学習プログラミング 達人データサイエンティストによる理論と実践/SebastianRaschka/VahidMirjalili/クイープ【合計3000円以上で送料無料】 価格:4,320
|
座右の銘は明日は明日の風が吹く。虎ぱぱでした♪