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

回答編集履歴

1

補足を追加

2019/05/09 03:23

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  > ``pandas.cut()``のデフォルト動作としては右側の値(大きい方の値)を**含む**ようにカテゴリー分けします。右側の値を**含まない** ようにカテゴリー分けしたい場合は ``right=False`` パラメータを設定してください。
19
19
 
20
- ただ、これらの表記は「このカテゴリーは何なのか」を示す**単なる表記** ですのでそれほど気にする必要はないのかなと個人的には思います。単にカテゴリ分けした結果だけが欲しい場合は``pandas.cut()``のパラメータに ``labels=False`` を渡してください。1つ目のカテゴリーに属する場合は``0``を、1つ目のカテゴリーに属する場合は``1``を返すようになります。
20
+ ~~ただ、これらの表記は「このカテゴリーは何なのか」を示す**単なる表記** ですのでそれほど気にする必要はないのかなと個人的には思います。~~ 単にカテゴリ分けした結果だけが欲しい場合は``pandas.cut()``のパラメータに ``labels=False`` を渡してください。1つ目のカテゴリーに属する場合は``0``を、1つ目のカテゴリーに属する場合は``1``を返すようになります。
21
21
 
22
22
  またここで、1つ目のカテゴリーの左側の値(小さい方の値)が ``99.987`` となっているのは、IDの最小値``100`` を1つ目のカテゴリーとして扱う為に設定されている(pandas内部で何かしらの計算で自動的に算出された)値ですので、こちらもあまり気にする必用はありません。
23
23
 
@@ -26,4 +26,16 @@
26
26
  - 0より大きく108以下の場合 : 1つ目のカテゴリー
27
27
  - 108より大きく200以下の場合 : 2つ目のカテゴリー
28
28
 
29
- として分割したい場合は、``pandas.cut(bins=[0,108,200])`` などと書きます。この場合どちらにも属さないIDがあった場合``NaN``を返しますのでご注意ください。
29
+ として分割したい場合は、``pandas.cut(bins=[0,108,200])`` などと書きます。この場合どちらにも属さないIDがあった場合``NaN``を返しますのでご注意ください。
30
+
31
+ ---
32
+
33
+ **【補足】**
34
+ 不正確な記述をしていたので補足
35
+
36
+ pandas には ``pandas.interval``という区間を表すオブジェクトがあるようです。
37
+
38
+ [https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Interval.html](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Interval.html)
39
+
40
+ で、``pandas.cut()``はどの intervalオブジェクトに属しているかでカテゴリー分けしているようです
41
+ ですので、``(99.987, 106.5]`` のような記述は **「単なる表記」** ではなく、**「どのintervalオブジェクトに属しているか」**という意味合いになりますね。