如何以编程方式检索pandas数据框架中的列数?我希望是这样的:
df.num_columns
如何以编程方式检索pandas数据框架中的列数?我希望是这样的:
df.num_columns
当前回答
很惊讶我还没见过这个,所以话不多说,下面是:
df.columns.size
其他回答
像这样:
import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})
len(df.columns)
3
为了在你的总形状中包含行索引“列”的数量,我个人会将df.columns.size与属性pd.Index.nlevels/pd.MultiIndex.nlevels加在一起:
设置虚拟数据
import pandas as pd
flat_index = pd.Index([0, 1, 2])
multi_index = pd.MultiIndex.from_tuples([("a", 1), ("a", 2), ("b", 1), names=["letter", "id"])
columns = ["cat", "dog", "fish"]
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_df = pd.DataFrame(data, index=flat_index, columns=columns)
multi_df = pd.DataFrame(data, index=multi_index, columns=columns)
# Show data
# -----------------
# 3 columns, 4 including the index
print(flat_df)
cat dog fish
id
0 1 2 3
1 4 5 6
2 7 8 9
# -----------------
# 3 columns, 5 including the index
print(multi_df)
cat dog fish
letter id
a 1 1 2 3
2 4 5 6
b 1 7 8 9
将我们的过程写成函数:
def total_ncols(df, include_index=False):
ncols = df.columns.size
if include_index is True:
ncols += df.index.nlevels
return ncols
print("Ignore the index:")
print(total_ncols(flat_df), total_ncols(multi_df))
print("Include the index:")
print(total_ncols(flat_df, include_index=True), total_ncols(multi_df, include_index=True))
这个打印:
Ignore the index:
3 3
Include the index:
4 5
如果你只想包含指标的数量如果指标是pd。MultiIndex,然后你可以在定义的函数中加入isinstance检查。
作为替代,您可以使用df.reset_index().columns。大小来实现相同的结果,但这不会有同样的性能,因为我们临时插入新列到索引中,并在获得列数之前创建一个新索引。
import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})
print(len(list(df.iterrows())))
给出行长度
3
[Program finished]
选择:
df.shape[1]
(df。形状[0]是行数)
如果保存数据帧的变量叫做df,那么:
len(df.columns)
给出列数。
对于想知道行数的同学
len(df.index)
对于包含行数和列数的元组:
df.shape