2 回答
TA贡献1810条经验 获得超5个赞
这取决于空白列的格式。例如,考虑它们是空字符串的情况:
df = pd.DataFrame({'A': [1,2,3],
'' : ['','',''],
'B': [1,2,3]})
选项1:
您可以尝试计算空列的数量:
df_columns = list(df.columns)
num_cols = len(df_columns) - df_columns.count('')
print(num_cols)
# returns 2
选项 2:
另一种选择是使用.isidentifier()string 方法,这将更加健壮,因为它将空字符串和空格都检测为空白列。但是,它会过滤掉任何带有空格的列!因此,仅当您的非空列具有格式良好的列名时,这再次起作用。
num_cols = np.sum([col.isidentifier() for col in df.columns])
print(num_cols)
# prints 2
TA贡献1876条经验 获得超5个赞
这是简单的解决方案
dff = pd.read_excel('D:/test.xlsx',sheet_name='goal',header=None, na_values=' ') #This will convert blank values to NaN
dff
0 1 2 3 4 5 6 7 8 9
0 0 0 24.1 23.9 24.4 24.3 NaN NaN NaN 2.880136
1 0 0 24.1 23.9 24.4 24.3 NaN NaN NaN 2.878689
2 0 0 24.1 23.9 24.4 24.3 NaN NaN NaN 2.875072
3 0 0 24.1 23.9 24.4 24.3 NaN NaN NaN 2.883029
获取列(不考虑空白列)
col = list(dff.drop(dff.loc[:,list((100*(dff.isnull().sum()/len(dff.index))==100))].columns, 1).columns.values)
print(col)
# [0, 1, 2, 3, 4, 5, 9]
print(len(col))
# 7
获取列(考虑空白列)
all_col = dff.columns.tolist()
print(all_col)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(len(all_col))
# 10
注意:您可以创建没有空白列的单独数据框
df1 = dff[col]
df1
0 1 2 3 4 5 9
0 0 0 24.1 23.9 24.4 24.3 2.880136
1 0 0 24.1 23.9 24.4 24.3 2.878689
2 0 0 24.1 23.9 24.4 24.3 2.875072
3 0 0 24.1 23.9 24.4 24.3 2.883029
添加回答
举报
