python - 考虑到中间的空白列,如何计算列数?

标签 python pandas

如果 df 在某些列之间有空格,我如何计算列数?我基于 XLS 文件创建 df,它有这样的问题。 空白列的数量未知,但绝不会超过 20。

df =

col1   col2   col3        col4
112    ret    56          xx
34     wet    45          yy

如何计算列数: * 得到 4 列(不考虑空白列) * 得到 5 列(考虑空白列)。

该方法应该适用于非空白列之间的任意数量的空白列。

更新:

pandas 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() string 方法,这会更健壮一些,因为它将空字符串和空格都检测为空白列。然而,它会过滤掉任何有空格的列!因此,只有当您为非空列设置了格式良好的列名时,这才会再次起作用。

num_cols = np.sum([col.isidentifier() for col in df.columns])

print(num_cols)
# prints 2

关于python - 考虑到中间的空白列,如何计算列数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55705874/

相关文章:

python - Pandas 多索引切片下属级别范围的最佳方法

python访问字典中字典中的元素

python - 使用 For 循环对 Pandas DataFrame 进行排序和重新排列

python - 从 pandas 数据框中删除或清空所有数据

python - 使用 Pandas 聚合具有开始和结束时间的事件

python - JenkinsAPI Python - 尝试获取构建信息

python - 使用 Python 编辑 XML 文件内容

c++ - 维基代码?任何人都可以查看和编辑代码的地方?

python - 在python中按组枚举行

python-3.x - 运行 pip3 install pandas_datareader 后,Jupyter (Anaconda) 中没有名为 'pandas_datareader' 的模块