如果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

09-25 20:53