我有一些数据,并希望获得样本量较小的列的列标题(例如,总行数<90%)。如何获取它们的列表,可能作为列表或数据框返回?
在下面的示例中,我希望将FieldC
作为输出。
使用train_df.head()
:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2000 entries, 0 to 1999
Data columns (total 100 columns):
Id 2000 non-null int64
FieldA 2000 non-null int64
FieldB 2000 non-null object
FieldC 1675 non-null float64
FieldD 2000 non-null int64
FieldE 2000 non-null object
...more fields...
使用train_df.count()<2000*0.9
:
Id False
FieldA False
FieldB False
FieldC True
FieldD False
FieldE False
...more fields...
答案 0 :(得分:0)
我认为你可以做到:
columnsToBeReturn=[]
max=df.shape[0] #getting the shape of the entire dataframe so the biggest number of rows
for col in df.columns:
if len(df[col])<max*0.9:
columsToBeReturn.append(col)
return columnsToBeReturn
答案 1 :(得分:0)
>>> _=pandas.DataFrame({'horse':[3,None],'cow':[1,2],'sheep':[None,None]})
>>> _
cow horse sheep
0 1 3.0 None
1 2 NaN None
>>> criterion2=_.columns[_.count()>2]
>>> criterion1=_.columns[_.count()>1]
>>> criterion0=_.columns[_.count()>0]
>>> criterion2
Index([], dtype='object')
>>> criterion1
Index(['cow'], dtype='object')
>>> criterion0
Index(['cow', 'horse'], dtype='object')
>>> _[criterion2]
Empty DataFrame
Columns: []
Index: [0, 1]
>>> _[criterion1]
cow
0 1
1 2
>>> _[criterion0]
cow horse
0 1 3.0
1 2 NaN
>>> pandas.__version__
'0.22.0'
此pandas.'object'的索引也可以转换为文本字符串序列。