質問編集履歴

4

表の修正

2022/02/17 07:16

投稿

watchdogs
watchdogs

スコア54

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

文章の修正

2022/02/17 07:14

投稿

watchdogs
watchdogs

スコア54

test CHANGED
File without changes
test CHANGED
@@ -7,10 +7,14 @@
7
7
 
8
8
  結合の際下記の状況を示すラベルを追加
9
9
  ラベルカラムに
10
+
11
+ |条件|ラベルの内容|
12
+ |:--|:--:|
10
- AとBに同じ内容があった場合         :int(回数)+ "連続"
13
+ |AとBに同じ内容があった場合|int(回数)+ "連続"|
11
- Aが新規ラベル且つBに同じ内容があった場合"2回連続"
14
+ |Aが新規ラベル且つBに同じ内容があった場合|"2回連続"|
12
- Bだけにあった場合     :"新規" 
15
+ |Bだけにあった場合|"新規" |
13
- Aだけにあった場合      :"解決"
16
+ |Aだけにあった場合 |"解決"|
17
+
14
18
  上記のようなカラムを加えてAとBの結合ファイルを作成したい
15
19
 
16
20
 

2

文章の修正しました。

2022/02/17 07:12

投稿

watchdogs
watchdogs

スコア54

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が新規ラベルった場合  :"2回連続"
11
+ ・Aが新規ラベル且つBに同じ内容があった場合 :"2回連続"
12
- ・Bだけにあった場合     :"新規" 
12
+ ・Bだけにあった場合     :"新規" 
13
- ・Aだけにあった場合     :"解決"
13
+ ・Aだけにあった場合      :"解決"
14
14
  上記のようなカラムを加えてAとBの結合ファイルを作成したい
15
15
 
16
16
 

1

表を追加しました。

2022/02/17 07:10

投稿

watchdogs
watchdogs

スコア54

test CHANGED
File without changes
test CHANGED
@@ -2,65 +2,46 @@
2
2
  途中までソースを記載しているのもありましてそちらもここに記載させて頂きます。
3
3
 
4
4
  <やりたいこと>
5
- フォルダ内には過去に集計されたCSVファイルが古いもの順で格納されている。
6
- あたらしくデータが入ってきた際の集計を下記のような形式で行いたい。
7
- 一度過去データを全てコンキャット
5
+ AとB2つの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
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-02-17/4f632ce3-82ba-4f10-8893-568d957ad4fe.png)
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
- ```