質問: python3.5.2
回答: 各CSVデータを読み込んだ後 1. 各日付ごとの DataFrame に対し **'date'** Column を追加 2. 上記の DataFrame を全て結合 し、その結合した DataFrameにて描写処理を行うとよいのではないでしょうか ``` import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import pandas as pd import glob import os from datetime import datetime # 特定ファイルの検出,*は日別のファイルディレクトリ files = glob.glob("../*/target.csv") # 全てのDataFrameを読み込んだ後に結合 df_list = [] for file in files: date_str = os.path.split(os.path.dirname(file))[1] # フォルダ名を日時データに変換 (formatは仕様に合わせてください) date = datetime.strptime(date_str, '%Y%m%d') tmp_df = pd.read_csv(file, encoding="UTF-8") tmp_df['date'] = date df_list.append(tmp_df) df = pd.concat(df_list, ignore_index=True) # print(df) # 3D Graphにて 日時データが入力できないようだったので変換 xdata = df.date.astype('int64') // 10**9 xbins = xdata.sort_values().unique() xformat = [datetime.fromtimestamp(d).strftime('%m/%d') for d in xbins] # 3Dグラフを表示(適当) ax = plt.gca(projection='3d') cm = ax.scatter(xdata, df['freq'], df['amp'], c=df['amp'], cmap='jet') ax.xaxis.set_ticks(xbins) ax.xaxis.set_ticklabels(xformat) plt.colorbar(cm) plt.tight_layout() plt.show() ``` **【追記】** ターゲットのファイルが `files = glob.glob("./*/target.csv")` から `files = glob.glob("./*/datafile/target.csv")` に変更されたとのことなので、一応説明。 例えば、 `file = "./AAA/BBB/CCC/target.csv"` の場合、 `os.path.dirname(file)` を使うと `./AAA/BBB/CCC/target.csv` から `./AAA/BBB/CCC` を抜き出すことができます。 更にこの戻り値 `./AAA/BBB/CCC`に対し `os.path.split()` を使うと `['./AAA/BBB', 'CCC']` と分割したリストを得ることができますので このリストの2個目の要素を取得することで `CCC` を得ることができます。 つまり現状は ``` date_str = os.path.split(os.path.dirname(file))[1] # files = "./AAA/BBB/CCC/target.csv" # にて 'CCC' が得られる ``` という実装になっております。 で、今回は更に上の階層のフォルダ名は `BBB` を取得したいとのことですので、 上記リストの1番目の要素 `./AAA/BBB` を更にもう一度 `os.path.split()` を使うことにより `['./AAA', 'BBB']` に分割し、このリストの2番目の要素を使用するとよいのではないでしょうか。 つまり ``` date_str =os.path.split(os.path.split(os.path.dirname(file))[0])[1] # files = "./AAA/BBB/CCC/target.csv" # にて 'BBB' が得られる ``` に書き換えると良いと思います。