回答編集履歴

8

f

2020/08/27 05:03

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- **プロパティ**とは、かんたんにいえば、pythonにおける、オブジェクトのデータの読み込みや書き込みを制御するためのスマートな仕組みです。
17
+ **プロパティ**とは、かんたんにいえば、pythonにおいては下記のような、オブジェクトのデータの読み込みや書き込みを制御するためのスマートな仕組みです。(JavaやC#など他の主要なプログラミング言語でも大抵似たような仕組みはあります)
18
18
 
19
19
 
20
20
 

7

f

2020/08/27 05:03

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- プロパティとして実装されていることによって、コード上、あたかも属性を直接扱うかのように代入や読み取りができる一方、代入や読み取りの際に、値のチェック等付随する処理も行われるよになっています。
7
+ プロパティとして実装されていることによって、コード上、あたかも属性を直接扱うかのように代入や読み取りができる一方、代入や読み取りの際に、関数と同様に、たとえば値のチェック等付随する処理も行うことが可能です。
8
8
 
9
9
 
10
10
 
@@ -110,11 +110,11 @@
110
110
 
111
111
  初期状態ではギアが1,
112
112
 
113
- 次はギアを1段階上げので2になります。
113
+ 次はギアを1段階上げので2になります。
114
114
 
115
115
 
116
116
 
117
- (ここまでは、単なる属性変数としてgearを作った場合と変わりません)
117
+ (ここまでは、単なるCarクラスのインスタンス属性としてgearを作った場合と変わりません)
118
118
 
119
119
 
120
120
 

6

f

2020/08/26 23:46

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -176,7 +176,7 @@
176
176
 
177
177
  これは、
178
178
 
179
- **dtypes(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから**
179
+ **dtypes(型の一覧)やcolumns(列の一覧)は、処理というよりも、より「属性」に近いものであるから**
180
180
 
181
181
  ではないかと勝手に推測してます。
182
182
 
@@ -186,4 +186,4 @@
186
186
 
187
187
 
188
188
 
189
- (もちろん「sumはデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」とか「dtypesは型の一覧を返すから処理ともいえるじゃないか」いう意見もあるかもしれませんが)
189
+ (もちろん「sumはデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」とか「dtypesは型を列挙して返すから処理ともいえるじゃないか」いう意見もあるかもしれませんが)

5

fソース追加

2020/08/26 16:42

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -1,6 +1,6 @@
1
1
  #プロパティ
2
2
 
3
- `df.dtype`や`df.columns`が()を使わずに用いることができるのは、それらがプロパティとして実装されているからです。
3
+ `df.dtypes`や`df.columns`が()を使わずに用いることができるのは、それらが[プロパティとして](https://github.com/pandas-dev/pandas/blob/master/pandas/core/apply.py#L121)[実装されている](https://github.com/pandas-dev/pandas/blob/master/pandas/core/series.py#L436)からです。
4
4
 
5
5
 
6
6
 
@@ -164,7 +164,7 @@
164
164
 
165
165
  もちろん上記のdtypesやcolumnsも、
166
166
 
167
- df.dtype()
167
+ df.dtypes()
168
168
 
169
169
  df.columns()
170
170
 
@@ -176,7 +176,7 @@
176
176
 
177
177
  これは、
178
178
 
179
- **dtype(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから**
179
+ **dtypes(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから**
180
180
 
181
181
  ではないかと勝手に推測してます。
182
182
 
@@ -186,4 +186,4 @@
186
186
 
187
187
 
188
188
 
189
- (もちろん「sumはデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」という意見もあるかもしれませんが)
189
+ (もちろん「sumはデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」とか「dtypesは型の一覧を返すから処理ともえるじゃないか」いう意見もあるかもしれませんが)

4

f

2020/08/26 16:37

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -158,6 +158,8 @@
158
158
 
159
159
 
160
160
 
161
+ # 使い分けの基準
162
+
161
163
 
162
164
 
163
165
  もちろん上記のdtypesやcolumnsも、
@@ -166,13 +168,15 @@
166
168
 
167
169
  df.columns()
168
170
 
171
+ みたいに関数として定義することも可能なはずです。
172
+
169
- みたいに関数とて定義することも可能なはずですが、pandasの偉い人たちはそういうアプローチはとっていません。
173
+ かし、pandasの偉い人たちはそういうアプローチはとっていません。
170
174
 
171
175
 
172
176
 
173
177
  これは、
174
178
 
175
- dtype(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから
179
+ **dtype(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから**
176
180
 
177
181
  ではないかと勝手に推測してます。
178
182
 

3

f

2020/08/26 16:18

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -172,11 +172,9 @@
172
172
 
173
173
  これは、
174
174
 
175
- dtype(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから
175
+ dtype(型)やcolumns(列の内容)は、処理というよりも、より「属性」に近いものであるから
176
176
 
177
-
178
-
179
- じゃないかと勝手に推測してます。
177
+ ではないかと勝手に推測してます。
180
178
 
181
179
 
182
180
 
@@ -184,4 +182,4 @@
184
182
 
185
183
 
186
184
 
187
- (もちろん「sum()はデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」という意見もあるかもしれませんが)
185
+ (もちろん「sumはデータフレーム内の集合に関するものだからデータフレームの属性っぽいものじゃないか」という意見もあるかもしれませんが)

2

f

2020/08/26 16:16

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -154,9 +154,7 @@
154
154
 
155
155
  ・データフレーム内のデータの合計という処理を行って、合計値を返す
156
156
 
157
- だけであり、代入するものではないため、関数として定義されています。
157
+ という純粋な処理なので、関数として定義されているものと思われます。
158
-
159
-
160
158
 
161
159
 
162
160
 
@@ -168,18 +166,22 @@
168
166
 
169
167
  df.columns()
170
168
 
171
- みたいに関数として定義すること可能と思いますが、pandasの偉い人たちはそういうアプローチはとっていません。
169
+ みたいに関数として定義すること可能なはずですが、pandasの偉い人たちはそういうアプローチはとっていません。
172
170
 
173
171
 
174
172
 
175
- ただdf.columnsをdf.columns()という関数にすると何かの列を代入する処理は
173
+ これは
176
174
 
177
- df.set_columns(〇〇)というように別関数を用意することでしょう。
175
+ dtype(型)やcolumns(列の内容)は、処理というよりもより「属性」近いものであから
178
176
 
179
177
 
180
178
 
181
- そこらへんがスマートじゃないと考えたのかもせん
179
+ じゃない勝手に推測
182
180
 
183
181
 
184
182
 
183
+ 逆に`df.isnull()`や`df.sum()` は「処理」としての色合いが濃いので、関数として定義されているんじゃないでしょうか。
184
+
185
+
186
+
185
- そもプロパティのcolumns代入処理すること自体は推奨されていないかもしれません)
187
+ (もちろん「sum()はデータフレーム内の集合するものだからデータフレームの属性っぽものじゃないか」という意見あるかもしれません

1

f

2020/08/26 16:06

投稿

sfdust
sfdust

スコア1137

test CHANGED
@@ -128,7 +128,7 @@
128
128
 
129
129
 
130
130
 
131
- このようにプロパティを使うことで、あたかもの属性を直接操作するようにコードを書くことでる一方で、代入時のチェックを実現してます。
131
+ このようにプロパティを使うことで、あたかもの属性を直接操作するようにコードを書くことる一方で、代入時のチェックを実現してます。
132
132
 
133
133
 
134
134