如果df
某些列之间有空格,如何计算列数?我基于XLS文件创建了df
,它具有此类问题。
空白列的数量是未知的,但永远不会超过20。
df =
col1 col2 col3 col4
112 ret 56 xx
34 wet 45 yy
如何计算列数:
*获得4列(不考虑空白列)
*获得5列(考虑空白列)。
该方法应适用于非空白列之间的任意数量的空白列。
更新:
大熊猫DataFrame
df
的创建过程如下:f_path = "C://test/myfile_with_blank_columns.xls"
df = pd.read_excel(open(f_path,'rb'), sheet_name='goal')
数据样本(某些文件不包含标题):
0 0 24.1 23.9 24.4 24.3 2.880136
0 0 24.1 23.9 24.4 24.3 2.878689
0 0 24.1 23.9 24.4 24.3 2.875072
0 0 24.1 23.9 24.4 24.3 2.883029
最佳答案
这取决于空白列的格式。例如,考虑以下情况:它们为空字符串:
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()
字符串方法,由于它会将空字符串和空格都检测为空白列,因此它会更健壮一些。但是,它将过滤掉所有带有空格的列!因此,仅当您为非空列设置了格式正确的列名时,这才再次起作用。num_cols = np.sum([col.isidentifier() for col in df.columns])
print(num_cols)
# prints 2