質問編集履歴
5
melianさんの助言の下コードを変更、最終修正のため更新。
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
|
-
|
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 =
|
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
|
-
|
92
|
+
最後に、この各ファイルで計算されたこの指定列の数値を全て足し合わせたものを表示したいのですが、方法が分かりません。
|
90
93
|
|
91
94
|
### 補足情報(FW/ツールのバージョンなど)
|
92
95
|
|
4
誤字、表現の修正。
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
パスを修正した。そうすると、各ファイルの、全ての列で条件を満たす値が出てしまう。
test
CHANGED
File without changes
|
test
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
初心者ですので、コードが間違っているか、vscodeの環境設定が間違っているかわかりません。稚拙な質問で申し訳ございません...
|
26
26
|
|
27
27
|
|
28
|
-
|
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
|
-
|
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
|
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
最後から二番目の行を改善したところ、別のエラーが出た。
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
|
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
|
-
後半部分を実行しようとすると、出力されません。
|
73
|
+
後半部分を実行しようとすると、出力されません。
|
74
|
+
最後に全ファイルで計算した数値を足し合わせれば完成なのですが、原因が分かりません。
|
68
75
|
|
69
76
|
### 補足情報(FW/ツールのバージョンなど)
|
70
77
|
|
1
melianさんの助言に基づきコードを改善、しかし新たなエラーメッセージが
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(f
|
56
|
+
df= pd.read_csv('upd_mgt_info_p.tsv',delimiter='\t')
|
46
57
|
print(df)
|
47
58
|
print(df.columns)
|
48
|
-
aymd =
|
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の理解度が足りず、分かりませんでした。
|