質問編集履歴
4
表の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -29,6 +29,7 @@
|
|
29
29
|
|1|2|4|5回連続|
|
30
30
|
|1|2|5|新規|
|
31
31
|
|1|2|6|新規|
|
32
|
+
|1|2|9|4回連続|
|
32
33
|
|
33
34
|
|
34
35
|
ファイルB
|
@@ -45,6 +46,7 @@
|
|
45
46
|
|1|2|4|6回連続|
|
46
47
|
|1|2|5|解決|
|
47
48
|
|1|2|6|解決|
|
49
|
+
|1|2|9|解決|
|
48
50
|
|1|2|7|新規|
|
49
51
|
|
50
52
|
|
3
文章の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,10 +7,14 @@
|
|
7
7
|
|
8
8
|
結合の際下記の状況を示すラベルを追加
|
9
9
|
ラベルカラムに
|
10
|
+
|
11
|
+
|条件|ラベルの内容|
|
12
|
+
|:--|:--:|
|
10
|
-
|
13
|
+
|AとBに同じ内容があった場合|int(回数)+ "連続"|
|
11
|
-
|
14
|
+
|Aが新規ラベル且つBに同じ内容があった場合|"2回連続"|
|
12
|
-
|
15
|
+
|Bだけにあった場合|"新規" |
|
13
|
-
|
16
|
+
|Aだけにあった場合 |"解決"|
|
17
|
+
|
14
18
|
上記のようなカラムを加えてAとBの結合ファイルを作成したい
|
15
19
|
|
16
20
|
|
2
文章の修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,10 +7,10 @@
|
|
7
7
|
|
8
8
|
結合の際下記の状況を示すラベルを追加
|
9
9
|
ラベルカラムに
|
10
|
-
・AとBに同じ内容があった場合 :int(回数)+ "連続"
|
10
|
+
・AとBに同じ内容があった場合 :int(回数)+ "連続"
|
11
|
-
・Aが新規ラベル
|
11
|
+
・Aが新規ラベル且つBに同じ内容があった場合 :"2回連続"
|
12
|
-
・Bだけにあった場合 :"新規"
|
12
|
+
・Bだけにあった場合 :"新規"
|
13
|
-
・Aだけにあった場合 :"解決"
|
13
|
+
・Aだけにあった場合 :"解決"
|
14
14
|
上記のようなカラムを加えてAとBの結合ファイルを作成したい
|
15
15
|
|
16
16
|
|
1
表を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,65 +2,46 @@
|
|
2
2
|
途中までソースを記載しているのもありましてそちらもここに記載させて頂きます。
|
3
3
|
|
4
4
|
<やりたいこと>
|
5
|
-
フォルダ内には過去に集計されたCSVファイルが古いもの順で格納されている。
|
6
|
-
あたらしくデータが入ってきた際の集計を下記のような形式で行いたい。
|
7
|
-
|
5
|
+
AとBの2つのCSVファイルがある
|
8
|
-
|
6
|
+
それらを下記の条件で結合させたい
|
9
7
|
|
10
|
-
ラベル
|
8
|
+
結合の際下記の状況を示すラベルを追加
|
11
9
|
ラベルカラムに
|
10
|
+
・AとBに同じ内容があった場合 :int(回数)+ "連続"
|
12
|
-
・
|
11
|
+
・Aが新規ラベルだった場合 :"2回連続"
|
13
|
-
・新規
|
12
|
+
・Bだけにあった場合 :"新規"
|
14
|
-
・
|
13
|
+
・Aだけにあった場合 :"解決"
|
15
|
-
|
14
|
+
上記のようなカラムを加えてAとBの結合ファイルを作成したい
|
15
|
+
|
16
16
|
|
17
17
|
お手数おかけしますが、
|
18
|
-
条件付きの集計方法についてわからないので教えてほしいです。
|
19
|
-
|
20
18
|
よろしくお願い致します。
|
21
19
|
|
22
20
|
|
21
|
+
ファイルA
|
22
|
+
|列1|列2|列3|ラベル|
|
23
|
+
|:--|:--:|--:|--:|
|
24
|
+
|1|2|3|新規|
|
25
|
+
|1|2|4|5回連続|
|
26
|
+
|1|2|5|新規|
|
27
|
+
|1|2|6|新規|
|
23
28
|
|
29
|
+
|
30
|
+
ファイルB
|
31
|
+
|列1|列2|列3|
|
32
|
+
|:--|:--:|--:|
|
33
|
+
|1|2|3|
|
34
|
+
|1|2|4|
|
35
|
+
|1|2|7|
|
36
|
+
|
37
|
+
結合ファイル
|
38
|
+
|列1|列2|列3|ラベル|
|
24
|
-
|
39
|
+
|:--|:--:|--:|--:|
|
40
|
+
|1|2|3|2回連続|
|
41
|
+
|1|2|4|6回連続|
|
42
|
+
|1|2|5|解決|
|
43
|
+
|1|2|6|解決|
|
44
|
+
|1|2|7|新規|
|
25
45
|
|
26
46
|
|
27
47
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-17/accf00a3-843b-4ed5-8912-10641fdc05a0.png)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
現在は数を数えるプログラムでしかできていません。
|
38
|
-
条件付きの集計のやり方を教えて下さい。
|
39
|
-
|
40
|
-
```Python
|
41
|
-
import pandas as pd
|
42
|
-
import glob
|
43
|
-
import os
|
44
|
-
|
45
|
-
def report_make_main():
|
46
|
-
data_list_report = []
|
47
|
-
for i_data in glob.glob("../result/log/*.csv"):
|
48
|
-
data_list_report.append(pd.read_csv(i_data, encoding = "cp932"))
|
49
|
-
print(str(i_data))
|
50
|
-
|
51
|
-
#データフレーム内のデータを全てコンキャットさせる
|
52
|
-
df_report = pd.DataFrame()
|
53
|
-
df_report = pd.concat(data_list_report, axis=0, sort=True)
|
54
|
-
|
55
|
-
#連続判定させる項目に絞る
|
56
|
-
df_report = df_report[["file_name","item_name","conditions","result"]]
|
57
|
-
df_report = df_report.groupby(["file_name","item_name","conditions"], as_index=False).count()
|
58
|
-
df_report = df_report.rename(columns= {"result":"continue"})
|
59
|
-
|
60
|
-
#上書き保存
|
61
|
-
df_report.to_csv("../result/report.csv",encoding = "cp932")
|
62
|
-
return "report作成完了"
|
63
|
-
|
64
|
-
|
65
|
-
report_make_main()
|
66
|
-
```
|