Python pandas dataframe:检索列数

use*_*143 159 python dataframe pandas

如何以编程方式检索pandas数据框中的列数?我希望有类似的东西:

df.num_columns
Run Code Online (Sandbox Code Playgroud)

Joh*_*ohn 264

像这样:

import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})

len(df.columns)
3
Run Code Online (Sandbox Code Playgroud)

  • 加上'df.shape`给出一个元组(n_rows,n_columns) (31认同)
  • @mkln如果你发布df.shape [1]作为答案,我会+1.这是使用numpy的更好方法,值得单独回答. (3认同)

mkl*_*kln 96

替代方案:

df.shape[1]
Run Code Online (Sandbox Code Playgroud)

(df.shape[0]是行数)

  • +1因为我喜欢鼓励使用martix类型语法寻址numpy和pandas对象.(df.shape vs len(df.columns)).说实话,如果你看一下形状的pandas描述符,它会调用len(df.columns),但是numpy数组和matricies会将它们作为属性.最有效的向量化操作可以使用常规python语法进行,而不是向量化操作,并且几乎总是错误的(numba/jit操作除了批评之外) (2认同)

mul*_*rse 24

如果持有数据帧的变量被称为df,那么:

len(df.columns)
Run Code Online (Sandbox Code Playgroud)

给出列数.

对于那些想要行数的人:

len(df.index)
Run Code Online (Sandbox Code Playgroud)

对于包含行和列数的元组:

df.shape
Run Code Online (Sandbox Code Playgroud)

  • @PadraicCunningham pandas有很多容易忘记的快捷方式,所以我宁愿忽略它们,而是使用主逻辑来解决问题.您有时可能会牺牲处理速度,但我认为我的编码时间和代码可读性超过了几秒的处理时间.在这种特殊情况下:如果你知道可以用len(df.index)计算行数,下次你需要列数时,自然会做len(df.columns). (4认同)
  • 不会`len(df)`给你行吗? (3认同)

mou*_*wsy 6

很惊讶我还没有看到这个,所以不用多说,这里是:

df.列大小