らふのプログラミングメモ

プログラミングメモです。

Python:pandasのDataFrameにデータを直接入力してCSVに書き出してみよう。

プログラム内にデータを読み込めたら、今度は書き出したい!
ということで、pandasのDataFrameのファイルへのデータの入力・出力を
まとめてみました。

下準備

pandasについての下準備は

rafu.hatenablog.jp ここの下準備 その1と同じです。

実際に書き出してみよう!

今回入力したいデータは
aaaさん:20歳
bbbさん:30歳
cccさん:40歳
というデータをDataFrameにいれてみたいと思います。

#まずpandasをimportする
import pandas as pd

#入力したいデータ(今回はヘッダーもここで入力します)
data ={"name":["aaa","bbb","ccc"],"age":[20,30,40]}

#ここでDataFrameに入力
df = pd.DataFrame(data)

df.to_csv("out.csv")

dfに入力されたイメージ図

name age
0 aaa 20
1 bbb 30
2 ccc 40

out.csvファイルの中身


,name,age
0,aaa,20
1,bbb,30
2,ccc,40


プログラムの説明

  • data
    ここに、実際入力したい値をいれます。
    今回はヘッダーも直接入力しました。

  • pd.DataFrame(data)
    第1引数(今回だとdata)の2次元配列のデータが作成できます。
    今回はヘッダーを初めに設定しましたが、
    以下のように直接データや引数を設定することもできます。

df = pd.DataFrame(data = (["aaa",20],["bbb",30],["ccc",40]),columns = ["name","age"])
  • df.to_csv("out.csv")
    dfに入っているデータをout.csvという名前のファイルにそのまま出力します。
    今回はファイル名しか記述していないので、
    プログラムの実行しているカレントディレクトリにout.csvが作成されます。
    また、区切り文字はデフォルトで[ , ]となっています。
    変更したい場合は、以下のように設定することができます。
df.to_csv("out.csv",sep="¥")

out.csvファイルの中身


¥name¥age
0¥aaa¥20
1¥bbb¥30
2¥ccc¥40


ヘッダーやインデックスを消したい場合も以下のように設定すれば、
出力せずにCSVファイルを作ることが可能です。

df.to_csv("out.csv",index = False , header = False)

out.csvファイルの中身


aaa,20
bbb,30
ccc,40



<最終更新日:2021/08/11>

2021/08/11 投稿