teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

別解

2018/05/12 02:16

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -17,4 +17,23 @@
17
17
  num_cnt.plot.bar()
18
18
 
19
19
  plt.show()
20
+ ```
21
+
22
+ ---
23
+ 追記:別解として「count」は数える対象外のもの(欠損値というのでしょうか)は除外してくれるので、以下のように1~9を追加する際にcount列を欠損値にしてカウントで集約してもできるみたいです。こちらの方が素直かもしれません。(countが数値フィールドなので欠損値は何になるのだろうとdf2を見たらNANになっているようで納得の動作でした)
24
+
25
+ ```python
26
+ import pandas as pd
27
+ import matplotlib.pyplot as plt
28
+
29
+ df = pd.DataFrame([1,1,2,2,2,4,5,8,8,9], columns=['num'])
30
+ df['count'] = 1
31
+
32
+ df2 = pd.DataFrame([[i+1] for i in range(9)], columns=['num'])
33
+ df2 = df.append(df2)
34
+
35
+ num_cnt = df2.pivot_table(values = 'count', index = 'num', aggfunc = 'count')
36
+ num_cnt.plot.bar()
37
+
38
+ plt.show()
20
39
  ```