前提
worksheets_dflistにはworksheet_dfが配列に入っており、
0 date ... file_name
1 2020-06-22 ... drive/contents/nat/625
2 2020-06-23 ... drive/contents/nat/625
3 2020-06-24 ... drive/contents/nat/625
4 2020-06-25 ... drive/contents/nat/625
[4 rows x 7 columns], 0 date ... file_name
1 2020-06-26 ... drive/contents/haru/628
2 2020-06-27 ... drive/contents/haru/628
3 2020-06-28 ...
(以下略)
worksheet_dfの場合は以下
0 date ... file_name
1 2020-06-22 ... drive/contents/nat/625
2 2020-06-23 ... drive/contents/nat/625
3 2020-06-24 ... drive/contents/nat/625
4 2020-06-25 ... drive/contents/nat/625
file_nameには各カラムの値から文字列を抽出して結合したものが入っています。
カラムはdate,id,name,dir,flag,file_nameのような形で、file_nameは
file_name = i[4]+i[3]+'/'+i[1]+'/'+i[6][48:]
で文字列を作成して、カラムに入れてあります。
それをworksheets_dflistに更新したいのですが、ループが上手くいかず、
worksheet_dfにはfile_nameが上記のようにループ最終時点での値で更新されてしまいます。
実現したいこと
0 date ... file_name 1 2020-06-22 ... drive/contents/nat/622 2 2020-06-23 ... drive/contents/nat/623 3 2020-06-24 ... drive/contents/nat/624 4 2020-06-25 ... drive/contents/nat/625 [4 rows x 7 columns], 0 date ... file_name 1 2020-06-26 ... drive/contents/haru/626 2 2020-06-27 ... drive/contents/haru/627 3 2020-06-28 ... drive/contents/haru/628 (以下略)
このようにループを正しい形で回したいです。
今の状態だと、全て同じ値で入ってきてしまい、ループが機能していない状態です。
下記が試したコードになります。
該当のソースコード
python
1file_name_list = [] 2for worksheet_df in worksheets_dflist: 3 for i in worksheet_df.itertuples(): 4 file_name = i[4]+i[3]+'/'+i[1]+'/'+i[6][48:] 5 file_name_list.append(file_name) 6 for i in file_name_list: 7 worksheet_df.at[worksheet_df.index, 'file_name'] = ??
すごく初歩的な質問なんだと思うのですが、どうしても詰まってしまいました。
知恵をお貸しいただけたら幸いです。
分かりにくくてすみません、追記いたしました。