
ゆうき( @BASEBALLY15 )です^^
Pythonを使って,CSVファイルの保存先を自分で決めたいのですが,何か方法はないですか・・・?
ありますよ^^
それでは,今回は, csvファイルとディレクトリを作成し,
保存先を自分で決める方法をご紹介します.
よろしくお願いします・・・

目次
CSVファイルとディレクトリの作成に関するご質問
Question
Jupiter notebookなどで,データフレームを作成してのですが,それをcsvファイルとして保存したいです.
また,保存先を自分で指定したいです.
Answer
今回は,csvファイルとディレクトリの作成に加えて,
csvファイルに新たにデータを追加する方法と,
画像を,作成したディレクトリに保存する方法についてご紹介します.
ライブラリ
まずは,ライブラリを用意します.
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
#ランダムな数値を使うためのライブラリ
from numpy.random import randn
#ディレクトリを作成するために用意する
import os
import matplotlib.pyplot as plt
%matplotlib inline
次に,コードを記述していきたいと思います.
データフレームの作成
最初に,データフレームを作成します.
#データフレームを作成
df_list = pd.DataFrame({"Word": ["A", "B", "C", "D", "E", "F"], "Number": randn(6)})
#後で追加するためのデータフレームを作成
df_list2 = pd.DataFrame({"Word": ["G", "H", "I", "J", "K", "L"], "Number": range(1,7)})
#df_listを実行
df_list
すると,このように”Word”の列と”Number”の列が表示されます.
Word | Number | |
---|---|---|
0 | A | 0.117678 |
1 | B | 0.290303 |
2 | C | -0.333502 |
3 | D | -0.706875 |
4 | E | -0.458318 |
5 | F | 0.624240 |
#df_list2を実行
df_list2
Word | Number | |
---|---|---|
0 | G | 1 |
1 | H | 2 |
2 | I | 3 |
3 | J | 4 |
4 | K | 5 |
5 | L | 6 |
次に,ディレクトリを作成していきます.
ディレクトリの作成
###ディレクトリの作成###
#ディレクトリの保存先を指定
dir_place = "C:/保存先(自分で指定する)/"
#ディレクトリ名
dir_name = "random"
#ディレクトリ全体
dir_all = dir_place + dir_name
#ディレクトリを作成
dir_file = os.makedirs(dir_all, exist_ok=True)
これで,指定した場所にディレクトリが作成されています.
ちなみに,
exist_ok=True
は,もし同じディレクトリがあった時に,その状態を保つことを意味します.
これが無いと,「ディレクトリが既に存在しています」というエラーが表示されます!
次に,csvファイルを作成します.
CSVファイルの作成と保存
#csvファイルの作成
csv_name = "random_numbers"
#csvファイルを作成
make_csv = df_list.to_csv(dir_all+ "/"+ csv_name+ ".csv")
#実行
make_csv
これで, csvファイルが作成され,ディレクトリの中に,保存されます.
次に,保存したcsvファイルに,新たにデータを上書きしたいと思います.
CSVファイルに新たにデータを保存
#df_list2も同じcsvファイルに保存する
make_csv = df_list2.to_csv(dir_all + "/" + csv_name + ".csv", mode="a", header=False)
ちなみに,
mode=”a“
で,同じcsvファイルに保存することを意味しています.
また,
header=False
で,新たに保存するデータのカラムを追加せずに保存します.
保存した結果を表示してみたいと思います.
#csvファイルを読み込んでみる
data = pd.read_csv(dir_all+ "/"+ csv_name+ ".csv")
#実行
data
Unnamed: 0 | Word | Number | |
---|---|---|---|
0 | 0 | A | -0.018208 |
1 | 1 | B | -3.245287 |
2 | 2 | C | -2.400596 |
3 | 3 | D | 1.124592 |
4 | 4 | E | -1.181418 |
5 | 5 | F | -0.338005 |
6 | 0 | G | 1.000000 |
7 | 1 | H | 2.000000 |
8 | 2 | I | 3.000000 |
9 | 3 | J | 4.000000 |
10 | 4 | K | 5.000000 |
11 | 5 | L | 6.000000 |
このように,2つのデータが保存されています.
作成したディレクトリ内にグラフを保存
最後に,データフレームをプロットし,その画像を,作成したディレクトリ内に保存したいと思います.
#データフレームをプロットしてみる
plot_data = plt.plot(df_list["Word"], df_list["Number"], label="random")
plot_data2 = plt.plot(df_list2["Word"], df_list2["Number"], color="red", label="integer")
plt.xlabel("Word")
plt.ylabel("Number")
#凡例を表示
plt.legend()
#画像名
image = "random.png"
#画像の保存先を上で作成したデータフレームにする
plt.savefig(os.path.join(dir_all, image))
ちなみに,
os.path.join(保存先, 画像名)
というコードを記述することで,作成したディレクトリ内に画像を保存することができます.
これらの結果,以下のように作成したディレクトリ内にcsvファイルと画像を保存することができます.

終わりに
今回は,Pythonでcsvファイルやディレクトリを作成しました.
データ分析をしていると,保存先を自分で決めたいときがあるので,
今回ご紹介した方法を使うと,すごく便利です.
ぜひ,みなさんも使ってみてください^^
それでは・・・