【发布时间】:2013-12-16 08:00:01
【问题描述】:
如何以编程方式检索 pandas 数据框中的列数?我希望得到类似的东西:
df.num_columns
【问题讨论】:
-
我正在寻找一种解决方案,该解决方案还考虑在 groupby 操作后变成(多)索引的列。我想出了
len(df.axes[0].names)+df.shape[1],但它看起来远非最佳。有任何想法吗?现在没有一个现有的答案可以解决这个问题。 -
@jangorecki 不过,这与这个问题完全没有关系。如果事物位于 DataFrame 的索引中,则它们不被视为一列。虽然这似乎有点武断的区别,但对于某些操作,pandas 以不同的方式对待索引值和列系列 very。无论如何,您可以在 groupby 时阻止使用
as_index=False创建MultiIndex。 -
@ALollz 不将它们视为列这一事实只是 pandas 的特性,来自 SQL、R 和其他技术的工程师会期望分组列是列,而不是属性。
-
@jangorecki 一种简单的方法是
len(df.reset_index().columns),因为 reset_index 会将所有索引转换为列。但正如@Aloltz 所说,这确实是一个独特的问题。我建议只用适当的样本数据集提出一个新问题,并在此处为接受的答案提供赏金。