質問編集履歴

2

色々と調べてみたのですが、自分の能力不足で出来ませんでした。もしわかる方がいらっしゃったらお願いします。

2019/12/07 09:12

投稿

Guroguro
Guroguro

スコア8

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
   一行目ですと、A1の値'3'と同じ値をA列に持つ かつ C1の値'1'と同じ値をC列に持つ かつ
42
42
 
43
-  B1の値'6'より小さい値をB列に持つ行をカウントしてDに出力する。
43
+  B1の値'6'より小さい値をB列に持つ行をカウントしてその個数をDに出力する。
44
44
 
45
45
 
46
46
 

1

色々と調べてみたのですが、自分の能力不足で出来ませんでした。もしわかる方がいらっしゃったらお願いします。

2019/12/07 09:12

投稿

Guroguro
Guroguro

スコア8

test CHANGED
@@ -1 +1 @@
1
- pythonでExcelにある関数countifsを行いたい。
1
+ 複数条件にあった列のカウントを行いたい。
test CHANGED
@@ -1,65 +1,47 @@
1
- #####環境
1
+ #####環境
2
2
 
3
3
  pyhon 3.7
4
4
 
5
- win 10
6
5
 
6
+
7
- spyder使用
7
+ #####【やりたいこと】
8
+
9
+ csvファイル中の80万行×14列のデータの中で複数条件にあった列を行ごとに個数をカウントしようとしています。
8
10
 
9
11
 
10
12
 
11
- #やりたいこと
13
+ ######【質問内容】
12
14
 
13
- ####pythonにcsvファイルをインポートし、Excelにある関数countifsのような複数条件検索を行い、新しいに一行ずつその結果出力したい
15
+ ①下のような複数条件にあった列をカウントする方法がわかりません
14
16
 
15
- `
16
-
17
- df=pd.read_csv(r'C:\Users\Desktop\py\exampl.csv')
17
+ ②加えて、そのカウントした値を新しく作成した列に記述する方法がわかりません。
18
-
19
- print(df)
20
-
21
- `
22
-
23
- No A B C D
24
-
25
- 1 3 6 1
26
-
27
- 2 3 5 1
28
-
29
- 3 4 4 1
30
-
31
- 4 3 3 0
32
-
33
- 5 3 2 0
34
-
35
- 6 3 1 1
36
18
 
37
19
 
38
20
 
21
+ No A B C D ・・・
39
22
 
23
+ 1 3 6 1 ・・・
40
24
 
25
+ 2 3 5 1・・・
26
+
27
+ 3 4 4 1・・・
28
+
29
+ 4 3 3 0・・・
30
+
31
+ 5 3 2 0・・・
32
+
33
+ 6 3 1 1・・・
34
+
35
+ ・・・・・・
36
+
41
- 上記のように出力したexample.csvにおいて
37
+ 8000000 3 1 1・・・
42
38
 
43
39
 
44
40
 
41
+  一行目ですと、A1の値'3'と同じ値をA列に持つ かつ C1の値'1'と同じ値をC列に持つ かつ
42
+
45
- Excel関数でうとする
43
+  B1値'6'より小さい値をB列に持つをカウントしてDに出力する
46
44
 
47
45
 
48
46
 
49
- ######'D1' =COUNTIFS($A$1:$A$6,A1,$C$1:$C$6,C1,$B$1:$B6,< B1)
50
-
51
-
52
-
53
- というように
54
-
55
-
56
-
57
- A列における同行のcell'A1'値と同じ値を持つ行 かつ
58
-
59
- C列における同行のcell'C1'値と同じ値を持つ行 かつ
60
-
61
- B列における同行のcell'B1'値より小さい値を持つ行をカウントし
62
-
63
-
64
-
65
- その個数をD列に一行ごとに出力すことはpythonで可能なのでょうか?
47
+ 以上もしわか方がいらっゃったらお願いします。