如何检索Pandas数据框中的列数?


184

您如何以编程方式检索熊猫数据框中的列数?我希望有这样的东西:

df.num_columns

Answers:


304

像这样:

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

len(df.columns)
3

35
加号df.shape给出具有(n_rows,n_columns)的元组
mkln

3
@mkln如果您发布df.shape [1]作为答案,我会+1。这是使用numpy的更好方法,应该单独回答。
Phil Cooper

完成。@PhilCooper也许您可以解释为什么df.shape更好?我的猜测是它不调用函数而是仅从内存中读取属性?
mkln

112

选择:

df.shape[1]

df.shape[0]是行数)


2
+1是因为我希望鼓励使用martix类型语法来寻址numpy和pandas对象。(df.shape与len(df.columns))。说实话,如果您查看熊猫描述符的形状,它会调用len(df.columns),但是numpy数组和矩阵会将它们作为属性。相对于矢量化操作,最有效的矢量化操作可以使用常规python syntas完成,并且几乎总是错误的(除批注外,numba / jit操作)
Phil Cooper

26

如果保存数据帧的变量称为df,则:

len(df.columns)

给出列数。

对于那些想要行数的人:

len(df.index)

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

df.shape

3
不会len(df)给你行吗?
Padraic Cunningham 2015年

4
@PadraicCunningham pandas有很多捷径很容易忘记,所以我宁愿忽略它们,而使用主要逻辑来解决问题。有时您可能会牺牲处理速度,但是我认为编码时间和代码可读性比处理时间要好几秒钟。在这种特殊情况下:如果您知道可以使用len(df.index)计算行数,那么下次需要列数时,就很自然地要执行len(df.columns)。
multigoodverse


0

df.info()函数将为您提供如下结果。如果您使用的是不带sep参数或不带“,”的sep的Pandas的read_csv方法。

raw_data = pd.read_csv("a1:\aa2/aaa3/data.csv")
raw_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5144 entries, 0 to 5143
Columns: 145 entries, R_fighter to R_age

0

有多种选择来获取列号和列信息,例如:
让我们检查一下。

local_df = pd.DataFrame(np.random.randint(1,12,size =(2,6)),列= ['a','b','c','d','e','f '])1. local_df.shape [1]-> Shape属性返回元组为(行和列)(0,1)。

  1. local_df.info()-> info方法将返回有关数据框及其列的详细信息,例如列数,列的数据类型,非空值计数,数据帧的内存使用情况

  2. len(local_df.columns)->列属性将返回数据框列的索引对象,而len函数将返回可用列总数。

  3. local_df.head(0)->具有参数0的head方法将返回df的第一行,实际上仅是标题。

假设列数不超过10。为了循环乐趣:local_df中x的li_count = 0:li_count = li_count +1 print(li_count)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.