フォルダの中にあるcsvファイルを全て読み込んで縦積みにして一つのデータフレームに入れます。
フォルダは年毎に分かれていて、データフォームも年毎に分けます。
年毎に分かれたフォルダが多いため、ループにして一気に処理したいです。
最初はループで質問したのですが、関数で行った方が良いとのアドバイスをいただきましたので、色々と調べて関数で書いてみました。
「NameError: name 'df' is not defined」というエラーが出ました。
関数自体もあまりよくわからず、全体的にどうしていいか分かりません。
ご教示いただけますと幸いです。
コードは下記の通りです。
Python
1import pandas as pd 2import glob 3 4l1= ['2015c', '2016c', '2017c', '2018c', '2019c', '2020c', '2015s', '2016s', '2017s', '2018s', '2019s', '2020s'] 5 6def yomikomi (j): 7 df[j] = pd.DataFrame() 8 for i in glob.glob("[j]/*.csv"): # .csvを含むファイルをpd.read_csv()で読み込む 9 tmp_df = pd.read_csv(i, encoding="cp932")#, usecols=['読み込む項目'] 10 df[i] = pd.concat([df[i], tmp_df]) 11 pass 12 13for j in l1: 14 yomikomi(j)