質問編集履歴

5

melianさんの助言の下コードを変更、最終修正のため更新。

2022/07/29 03:21

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -24,10 +24,8 @@
24
24
 
25
25
 
26
26
  **※ 現在の問題**
27
- 現在、ループする各ファイルで、全て列で条件を満たす値の数出てしまいます。
27
+ 現在、ループする各ファイルで、指定列の条件を満たす値が全ファイル分出ています。
28
- (1列目=5, 2列目=8,3列目=43,... のような感じで)
29
-
30
- これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
28
+ 最後に、各ファイルで計算されたこの数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
31
29
 
32
30
 
33
31
  **以下、過去のエラーです。既に解決しました。**
@@ -53,6 +51,11 @@
53
51
  ```
54
52
  このディレクトリ名は後半のfor文の2番目です。エクスプローラーで確認したところ、この名前のフォルダがあったので、なぜこのディレクトリが見つからないと出ているのか分かりません。
55
53
 
54
+ ※ TakaiY さんの二度目の助言に基づいたコードの変更後 *解決済み
55
+ 現在、ループする各ファイルで、全ての列で条件を満たす値の数がが出てしまいます。
56
+ (1列目=5, 2列目=8,3列目=43,... のような感じで)
57
+
58
+ これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
56
59
 
57
60
  ### 該当のソースコード
58
61
 
@@ -73,9 +76,10 @@
73
76
  df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t') #目的の名前がついているファイルを読み込む
74
77
  print(df) #読み込んだファイルを表示
75
78
  print(df.columns) #ここがあまり分かっていないが、各列のヘッダーを表示?
76
- aymd = df[(df['app_year_month_day'] >= 20210401) & ( df['app_year_month_day'] <=20210430)].sum() #任意の列において、ある範囲にある数値が何個あるか数える。
79
+ aymd = ((df['app_year_month_day'] >= 20210401) & (df['app_year_month_day'] <=20210430)).sum() #任意の列において、ある範囲にある数値が何個あるか数える。
77
- print('num_data='+str(aymd)) #その指定列に条件を満たす値がいくつあったか表示 *現在問題発生中
80
+ print('num_data='+str(aymd)) #その指定列に条件を満たす値がいくつあったか表示
78
81
  #最後に各ファイルで計算した値を全て足し合わせ、表示したい
82
+
79
83
 
80
84
 
81
85
  ```
@@ -83,10 +87,9 @@
83
87
  ### 試したこと※現在
84
88
  前半部分のみ試してみると上手く解凍ファイルが各ディレクトリに収まってました。
85
89
 
86
- 後半部分を実行しようとすると、ループする各ファイルで、全て列で条件を満たす値の数出てしまいます。
90
+ 後半部分を実行すると、ループする各ファイルで、指定列の条件を満たす値が全ファイル分出ています。
87
- (1列目=5, 2列目=8,3列目=43,... のような感じで)
88
91
 
89
- これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
92
+ 最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
90
93
 
91
94
  ### 補足情報(FW/ツールのバージョンなど)
92
95
 

4

誤字、表現の修正。

2022/07/29 03:00

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -21,8 +21,18 @@
21
21
 
22
22
 
23
23
  ### 発生している問題・エラーメッセージ
24
+
25
+
26
+ **※ 現在の問題**
27
+ 現在、ループする各ファイルで、全ての列で条件を満たす値の数がが出てしまいます。
28
+ (1列目=5, 2列目=8,3列目=43,... のような感じで)
29
+
30
+ これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
31
+
32
+
33
+ **以下、過去のエラーです。既に解決しました。**
24
34
  まず、コードを実行してもvscodeの出力欄に合計数が出力されません。
25
- 初心者ですので、コードが間違っているか、vscodeの環境設定が間違っているかわかりません。稚拙な質問で申し訳ございません...
35
+ 初心者ですので、コードが間違っているか、vscodeの環境設定が間違っているかわかりません。稚拙な質問で申し訳ございません... *解決済み
26
36
 
27
37
 
28
38
  ※melianさんの助言に基づいたコードの変更後 *解決済み
@@ -44,14 +54,7 @@
44
54
  このディレクトリ名は後半のfor文の2番目です。エクスプローラーで確認したところ、この名前のフォルダがあったので、なぜこのディレクトリが見つからないと出ているのか分かりません。
45
55
 
46
56
 
47
- **※ TakaiY さんの二度目の助言に基づいたコードの変更後**
48
- 現在、ループする各ファイルで、全ての列で条件を満たす値の数がが出てしまいます。
49
- (1列目=5, 2列目=8,3列目=43,... のような感じで)
50
-
51
- これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
52
-
53
-
54
- ### 該当のソースコード※変更後
57
+ ### 該当のソースコード
55
58
 
56
59
  ```python
57
60
  import os

3

パスを修正した。そうすると、各ファイルの、全ての列で条件を満たす値が出てしまう。

2022/07/29 02:56

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -25,7 +25,7 @@
25
25
  初心者ですので、コードが間違っているか、vscodeの環境設定が間違っているかわかりません。稚拙な質問で申し訳ございません...
26
26
 
27
27
 
28
- **※melianさんの助言に基づいたコードの変更後**
28
+ ※melianさんの助言に基づいたコードの変更後 *解決済み
29
29
  修正後のエラーメッセージ(このメッセージの前にtsvファイルの内容らしきものがターミナルにあった。)
30
30
  ```
31
31
  Traceback (most recent call last):
@@ -37,11 +37,19 @@
37
37
 
38
38
  ```
39
39
 
40
- **※ TakaiY さんの助言に基づいたコードの変更後**
40
+ ※ TakaiY さんの一度目の助言に基づいたコードの変更後 *解決済み
41
41
  ```
42
42
  FileNotFoundError: [Errno 2] No such file or directory: 'JPWRP_20220413.tar.gz'
43
43
  ```
44
44
  このディレクトリ名は後半のfor文の2番目です。エクスプローラーで確認したところ、この名前のフォルダがあったので、なぜこのディレクトリが見つからないと出ているのか分かりません。
45
+
46
+
47
+ **※ TakaiY さんの二度目の助言に基づいたコードの変更後**
48
+ 現在、ループする各ファイルで、全ての列で条件を満たす値の数がが出てしまいます。
49
+ (1列目=5, 2列目=8,3列目=43,... のような感じで)
50
+
51
+ これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
52
+
45
53
 
46
54
  ### 該当のソースコード※変更後
47
55
 
@@ -50,19 +58,21 @@
50
58
  import tarfile
51
59
  import glob
52
60
  import csv
53
- os.chdir(r"C:\case study\applying date check")
61
+ os.chdir(r"C:\case study\applying date check") #解凍元があるディレクトリ
54
- tar_gz_files = glob.glob('*.tar.gz')
62
+ tar_gz_files = glob.glob('*.tar.gz') #拡張子が.tar.gzのファイルを全て捕捉
55
63
 
56
- for file in tar_gz_files:
64
+ for file in tar_gz_files: #上記ファイル全てで以下の作業を行なう
65
+ os.chdir(r"C:\case study\applying date check") #解凍元があるディレクトリに戻る
57
- with tarfile.open(file) as tar:
66
+ with tarfile.open(file) as tar: #ファイルを解凍
58
- tar.extractall('C:\\case study\\after defrost\\'+ file)
67
+ tar.extractall('C:\\case study\\after defrost\\'+ file) #解凍元ファイルと同じ名前のディレクトリを作成し解凍先に指定
59
- os.chdir(r"C:\case study\after defrost\\" +file +'\\JPWRP')
68
+ os.chdir(r"C:\case study\after defrost\\" +file +'\\JPWRP') #解凍された中に何故かJPWRPというディレクトリが出来ているため、その中へパスを変更
60
69
  import pandas as pd
61
- df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t')
70
+ df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t') #目的の名前がついているファイルを読み込む
62
- print(df)
63
- print(df.columns)
71
+ print(df) #読み込んだファイルを表示
72
+ print(df.columns) #ここがあまり分かっていないが、各列のヘッダーを表示?
64
- aymd = df[(df['app_year_month_day'] >= 20210401) & ( df['app_year_month_day'] <=20210430)].sum()
73
+ aymd = df[(df['app_year_month_day'] >= 20210401) & ( df['app_year_month_day'] <=20210430)].sum() #任意の列において、ある範囲にある数値が何個あるか数える。
65
- print('num_data='+str(aymd))
74
+ print('num_data='+str(aymd)) #その指定列に条件を満たす値がいくつあったか表示 *現在問題発生中
75
+ #最後に各ファイルで計算した値を全て足し合わせ、表示したい
66
76
 
67
77
 
68
78
  ```
@@ -70,8 +80,10 @@
70
80
  ### 試したこと※現在
71
81
  前半部分のみ試してみると上手く解凍ファイルが各ディレクトリに収まってました。
72
82
 
73
- 後半部分を実行しようとすると、出力されせん
83
+ 後半部分を実行しようとすると、ループする各ファイルで、全ての列で条件を満たす値の数ががてしいます
84
+ (1列目=5, 2列目=8,3列目=43,... のような感じで)
85
+
74
- 最後にファイルで計算た数値を足し合わせれば完成なのですが、原因が分かりません。
86
+ これを、指定列(app_year_month_dayの列)のみ表示し、最後に、この各ファイルで計算されこの指定列の数値を全て足し合わせたもを表示したいのですが、方法が分かりません。
75
87
 
76
88
  ### 補足情報(FW/ツールのバージョンなど)
77
89
 

2

最後から二番目の行を改善したところ、別のエラーが出た。

2022/07/28 16:03

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,12 @@
36
36
  ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
37
37
 
38
38
  ```
39
+
39
- これはいどのようなエラでしょうか。
40
+ **※ TakaiY さんの助言に基づいた変更後**
41
+ ```
42
+ FileNotFoundError: [Errno 2] No such file or directory: 'JPWRP_20220413.tar.gz'
43
+ ```
44
+ このディレクトリ名は後半のfor文の2番目です。エクスプローラーで確認したところ、この名前のフォルダがあったので、なぜこのディレクトリが見つからないと出ているのか分かりません。
40
45
 
41
46
  ### 該当のソースコード※変更後
42
47
 
@@ -56,15 +61,17 @@
56
61
  df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t')
57
62
  print(df)
58
63
  print(df.columns)
59
- aymd = (20210401<= df['app_year_month_day'] <=20210430).sum()
64
+ aymd = df[(df['app_year_month_day'] >= 20210401) & ( df['app_year_month_day'] <=20210430)].sum()
60
65
  print('num_data='+str(aymd))
66
+
61
67
 
62
68
  ```
63
69
 
64
- ### 試したこと※変更前
70
+ ### 試したこと※現在
65
71
  前半部分のみ試してみると上手く解凍ファイルが各ディレクトリに収まってました。
66
72
 
67
- 後半部分を実行しようとすると、出力されません。実行とデバッグの欄に青い〇があって押してみましたが、自分のvscodeとpythonの理解度が足りず、分かりませんでした。
73
+ 後半部分を実行しようとすると、出力されません。
74
+ 最後に全ファイルで計算した数値を足し合わせれば完成なのですが、原因が分かりません。
68
75
 
69
76
  ### 補足情報(FW/ツールのバージョンなど)
70
77
 

1

melianさんの助言に基づきコードを改善、しかし新たなエラーメッセージが

2022/07/28 10:23

投稿

maltines
maltines

スコア12

test CHANGED
File without changes
test CHANGED
@@ -24,33 +24,44 @@
24
24
  まず、コードを実行してもvscodeの出力欄に合計数が出力されません。
25
25
  初心者ですので、コードが間違っているか、vscodeの環境設定が間違っているかわかりません。稚拙な質問で申し訳ございません...
26
26
 
27
+
28
+ **※melianさんの助言に基づいたコードの変更後**
29
+ 修正後のエラーメッセージ(このメッセージの前にtsvファイルの内容らしきものがターミナルにあった。)
30
+ ```
31
+ Traceback (most recent call last):
32
+ File "c:\case study\apply date check.py", line 16, in <module>
33
+ aymd = (20210401<= df['app_year_month_day'] <=20210430).sum()
34
+ File "C:\Py\python39\lib\site-packages\pandas\core\generic.py", line 1527, in __nonzero__
35
+ raise ValueError(
36
+ ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
37
+
38
+ ```
39
+ これはいったいどのようなエラーなのでしょうか。
40
+
27
- ### 該当のソースコード
41
+ ### 該当のソースコード※変更後
28
42
 
29
43
  ```python
30
44
  import os
31
45
  import tarfile
32
46
  import glob
47
+ import csv
33
48
  os.chdir(r"C:\case study\applying date check")
34
49
  tar_gz_files = glob.glob('*.tar.gz')
35
50
 
36
51
  for file in tar_gz_files:
37
52
  with tarfile.open(file) as tar:
38
53
  tar.extractall('C:\\case study\\after defrost\\'+ file)
39
-
40
- import csv
41
- os.chdir(r"C:\case study\after defrost")
54
+ os.chdir(r"C:\case study\after defrost\\" +file +'\\JPWRP')
42
- files = glob.glob('*mgt_info_p.tsv')
43
- for file in files:
44
55
  import pandas as pd
45
- df= pd.read_csv(file,delimiter='\t')
56
+ df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t')
46
57
  print(df)
47
58
  print(df.columns)
48
- aymd = aymd + (20210401<= df['app_year_month_day'] <=20210430).sum()
59
+ aymd = (20210401<= df['app_year_month_day'] <=20210430).sum()
49
60
  print('num_data='+str(aymd))
50
61
 
51
62
  ```
52
63
 
53
- ### 試したこと
64
+ ### 試したこと※変更前
54
65
  前半部分のみ試してみると上手く解凍ファイルが各ディレクトリに収まってました。
55
66
 
56
67
  後半部分を実行しようとすると、出力されません。実行とデバッグの欄に青い〇があって押してみましたが、自分のvscodeとpythonの理解度が足りず、分かりませんでした。