実現したいこと
・下記ディレクトリ構造で、会員番号のフォルダごとに格納されているスマートウォッチのデータに対して、Pythonのループ処理で会員番号の列を追加したい。
ソースコード内の#4でCSVを読み込ませたデータフレームに対して列追加の処理を実行したいのですが、
ループ処理内でcsvの読み込みができず、ループ処理内ではデータフレームの中身を確認しても何も表示されない状況です。
ループ内で処理を実行させるにあたって、ソースコードのどの部分の修正が必要でしょうか?
ご存じの方いましたらご教示いただけると幸いです。
#4でループの内で確認
print(glob.glob(i+ "/ACTIVITY/*.csv")[0])
出力結果→ 表示されない
#5でループの外で確認
print(i)
出力結果→ まとめフォルダ/A
print(glob.glob(i + "/ACTIVITY/*.csv")[0])
出力結果→ まとめフォルダ/A/ACTIVITY/ACTIVITY_XXXXXX.csv
前提
使用ツール等
- Python 3.9.7
- Jupternotebook
- MacOS
ディレクトリ構造
まとめフォルダ① | 会員番号フォルダ② | データ格納用フォルダ③ | CSVファイル |
---|---|---|---|
まとめフォルダ | A | ACTIVITY | ACTIVITY_XXXXXX.csv |
SLEEP | SLEEP_XXXXXX.csv | ||
HEARTRATE | HEARTRATE_XXXXXX.csv | ||
B | ACTIVITY | ACTIVITY_XXXXXX.csv | |
SLEEP | SLEEP_XXXXXX.csv | ||
HEARTRATE | HEARTRATE_XXXXXX.csv | ||
C | ACTIVITY | ACTIVITY_XXXXXX.csv | |
SLEEP | SLEEP_XXXXXX.csv | ||
HEARTRATE | HEARTRATE_XXXXXX.csv |
該当のソースコード
python
1from pathlib import Path 2import pandas as pd 3import glob 4import os 5 6#1 まとめフォルダ配下の会員番号フォルダ②のパス一覧を取得 7DIR = glob.glob('まとめフォルダ/*') 8 9#2 会員番号を格納するための空配列を用意 10MEMBER = [] 11 12#3 会員番号フォルダ②のパス一覧からフォルダ名のみを抜き出し、用意した空配列に会員番号を入れていく。 13for i in DIR: 14 MEMBER.append(os.path.split(i)[1]) 15 16#4 会員番号ごと、データ種類ごと(ACTIVITY,SLEEPなど)に、会員番号の列追加の処理を実行する。 17for i in glob.glob("MEMBER"): 18 df_ACTIVITY = pd.read_csv((glob.glob(i+ "/ACTIVITY/*.csv")[0]), encoding='utf-8') 19 df_ACTIVITY["会員番号"] = MEMBER 20 print(df_ACTIVITY) 21 print(glob.glob(i+ "/ACTIVITY/*.csv")[0]) 22 23 df_SLEEP = pd.read_csv((glob.glob(i+ "/SLEEP/*.csv")[0]), encoding='utf-8') 24 df_SLEEP["会員番号"] = MEMBER 25 print(df_SLEEP) 26 print(glob.glob(i+ "/SLEEP/*.csv")[0]) 27 28#5 データフレームの中身を確認。 29print(df_ACTIVITY) 30print(df_SLEEP)
回答1件
あなたの回答
tips
プレビュー