如何在pandas dataframe上显示所有列名?

时间:2018-03-09 07:49:04

标签: python pandas dataframe show

我有一个由数百列组成的数据框,我也需要查看所有列名称。

我做了什么:

In[37]:
data_all2.columns

输出结果为:

Out[37]:
Index(['customer_id', 'incoming', 'outgoing', 'awan', 'bank', 'family', 'food',
       'government', 'internet', 'isipulsa',
       ...
       'overdue_3months_feature78', 'overdue_3months_feature79',
       'overdue_3months_feature80', 'overdue_3months_feature81',
       'overdue_3months_feature82', 'overdue_3months_feature83',
       'overdue_3months_feature84', 'overdue_3months_feature85',
       'overdue_3months_feature86', 'loan_overdue_3months_total_y'],
      dtype='object', length=102)

如何显示所有列,而不是截断列表?

13 个答案:

答案 0 :(得分:17)

您可以全局设置打印选项。我认为这应该有效:

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

这将允许您查看所有列名称和&行.head()时的行。列名称都不会被截断。

如果您只想查看列名称,可以执行以下操作: cols = df.columns.tolist()

答案 1 :(得分:7)

在此示例中,要获取数据帧df_data的所有列名,只需使用命令df_data.columns.values。 这将显示一个列表,其中包含数据框的所有列名称

代码:

df_data=pd.read_csv('../input/data.csv')
print(df_data.columns.values)

输出:

['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']

答案 2 :(得分:4)

在交互式控制台中,很容易做到:

data_all2.columns.tolist()

或者在剧本中:

print(data_all2.columns.tolist())

答案 3 :(得分:3)

我找到的最简单的方法就是

list(df.columns)

我个人不想更改全局变量,不是经常要查看所有列名。

答案 4 :(得分:2)

您可以尝试

pd.pandas.set_option('display.max_columns', None)

答案 5 :(得分:1)

如果您只想查看所有列,可以执行此类操作作为快速修复

cols = data_all2.columns

现在cols将表现为可以索引的迭代变量。例如

cols[11:20]

答案 6 :(得分:1)

快速而肮脏的解决方案是将其转换为字符串

print('\t'.join(data_all2.columns))

会导致所有这些都被标签打印出来 当然,请注意,有102个名字,所有这些名字都很长,这将有点难以阅读

答案 7 :(得分:1)

要获取所有列名称,您可以遍历data_all2.columns

columns = data_all2.columns
for col in columns:
    print col

您将获得所有列名称。 或者,您可以将所有列名存储到另一个列表变量,然后打印列表。

答案 8 :(得分:1)

对我有用的是:

pd.options.display.max_seq_items = None

您还可以将其设置为大于列数的整数。

答案 9 :(得分:1)

我有很多重复的列名,并且一旦运行

Error: The element type "xsl:stylesheet" must be terminated by the matching end-tag"</xsl:stylesheet>"

我能够看到列的完整列表

信用: https://stackoverflow.com/a/40435354/5846417

答案 10 :(得分:1)

这不是常规的答案,但是我想您可以转置数据框以查看行而不是列。我之所以使用它,是因为我发现行比列更“国际化”:

data_all2.T

这应该使您查看所有行。 此动作不是永久性的,它只是让您查看数据框的转置版本。

如果行仍被截断,只需使用print(data_all2.T)查看所有内容。

答案 11 :(得分:0)

这可以解决问题。请注意使用display()代替打印。

with pd.option_context('display.max_rows', 5, 'display.max_columns', None): 
    display(my_df)

答案 12 :(得分:-1)

我知道这是重复,但是我总是最终复制并修改YOLO的答案:

pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)