回答編集履歴

1

追記

2018/08/02 14:12

投稿

hayataka2049
hayataka2049

スコア30939

test CHANGED
@@ -97,3 +97,125 @@
97
97
  参考:
98
98
 
99
99
  [pandasでユニークな要素の個数、頻度(出現回数)をカウント | note.nkmk.me](https://note.nkmk.me/python-pandas-value-counts/)
100
+
101
+
102
+
103
+ ### 追記
104
+
105
+ 「すべて任意の数(たとえば5)の列を除去したい」ということだったので、
106
+
107
+
108
+
109
+ ```python
110
+
111
+ import io
112
+
113
+ import pandas as pd
114
+
115
+
116
+
117
+ txt = """
118
+
119
+ a,b,c,d,e,f
120
+
121
+ 0,0,1,5,5,5
122
+
123
+ 4,5,3,5,4,5
124
+
125
+ 0,7,5,5,4,5
126
+
127
+ 4,5,6,5,7,5
128
+
129
+ 4,7,8,5,4,5
130
+
131
+ """
132
+
133
+
134
+
135
+ df = pd.read_csv(io.StringIO(txt), header=0)
136
+
137
+ print(df)
138
+
139
+ """ =>
140
+
141
+ a b c d e f
142
+
143
+ 0 0 0 1 5 5 5
144
+
145
+ 1 4 5 3 5 4 5
146
+
147
+ 2 0 7 5 5 4 5
148
+
149
+ 3 4 5 6 5 7 5
150
+
151
+ 4 4 7 8 5 4 5
152
+
153
+ """
154
+
155
+
156
+
157
+ print(df==5)
158
+
159
+ """ =>
160
+
161
+ a b c d e f
162
+
163
+ 0 False False False True True True
164
+
165
+ 1 False True False True False True
166
+
167
+ 2 False False True True False True
168
+
169
+ 3 False True False True False True
170
+
171
+ 4 False False False True False True
172
+
173
+ """
174
+
175
+
176
+
177
+ print(~(df == 5).all(axis=0))
178
+
179
+ """ =>
180
+
181
+ a True
182
+
183
+ b True
184
+
185
+ c True
186
+
187
+ d False
188
+
189
+ e True
190
+
191
+ f False
192
+
193
+ dtype: bool
194
+
195
+ """
196
+
197
+
198
+
199
+ print(df.loc[:, ~(df == 5).all(axis=0)])
200
+
201
+ """ =>
202
+
203
+ a b c e
204
+
205
+ 0 0 0 1 5
206
+
207
+ 1 4 5 3 4
208
+
209
+ 2 0 7 5 4
210
+
211
+ 3 4 5 6 7
212
+
213
+ 4 4 7 8 4
214
+
215
+ """
216
+
217
+ ```
218
+
219
+
220
+
221
+ df全体を5と比較してbooleanにし、`~(df == 5).all(axis=0)`で残す列を選択します。