前提
- 環境:Python 3.11.4
- 細かいパスの指定は省略
今回のゴール
'2023-07-23_data.csv'という名のCSVファイルの2列目にdateという列を追加したい。sample.py
#'2023-07-23_data.csv'の中身
>>> import pandas as pd
>>> df = pd.read_csv('2023-07-23_data.csv')
>>> df.head()
id
0 1
1 2
2 3
3 4
4 5
sample.py
#完成系
#'2023-07-23_data.csv'の「2023-07-23」を抽出して、追加したい
id date
0 1 2023-07-23
1 2 2023-07-23
2 3 2023-07-23
3 4 2023-07-23
4 5 2023-07-23
5 6 2023-07-23
流れ
- CSVファイルを選択
- ファイル名から日付を抽出
- 新たな列に追加
1.CSVファイルを選択
sample.py
#該当のCSVファイルをfile_nameという変数に格納する
>>> file_name = '2023-07-23_data.csv'
2.ファイル名から日付を抽出
sample.py
#ファイル名の先頭から10文字を抽出
>>> date = file_name[0:10]
>>> date
'2023-07-23'
3.新たな列に追加
sample.py
>>> import pandas as pd
#'2023-07-23_data.csv'をデータフレーム化
>>> df = pd.read_csv(file_name)
#dateを新たな列として追加
>>> df['date'] = date
#中身を確認
>>> df.head()
id date
0 1 2023-07-23
1 2 2023-07-23
2 3 2023-07-23
3 4 2023-07-23
4 5 2023-07-23
まとめ
ファイル名から日付を抽出し、新たな列に格納することが出来ました。以下に今までの内容をまとめた、サンプルコードを記載します。
ここまで見て頂き、下記のような感想を持った方もいると思います。
- 先頭から何文字とかは汎用性が低い抽出方法だ。
- 複数のファイルをまとめて、処理したい
sample.py
>>> import pandas as pd
>>> file_name = '2023-07-23_data.csv'
>>> df = pd.read_csv(file_name)
>>> date = file_name[0:10]
>>> df['date'] = date
>>> df.head()
id date
0 1 2023-07-23
1 2 2023-07-23
2 3 2023-07-23
3 4 2023-07-23
4 5 2023-07-23