如何在大熊猫数据框中显示所有列的名称?

问题描述 投票:0回答:22

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

我做了什么:

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)

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

python pandas dataframe
22个回答
623
投票

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

方法一:

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

方法二:

pd.options.display.max_columns = None
pd.options.display.max_rows = None

这将允许您在执行

.head()
时看到所有列名称和行。任何列名都不会被截断。


如果您只想查看列名称,您可以执行以下操作:

print(df.columns.tolist())

77
投票

要获取DataFrame的所有列名,本例中为

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']

43
投票

这样就可以了。请注意使用

display()
而不是 print。

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

编辑:

需要使用

display
,因为
pd.option_context
设置仅适用于
display
,而不适用于
print


19
投票

接受的答案导致我的专栏名称环绕。要显示所有列名称而不换行,请设置 display.max_columns 和 display.width:

pandas.set_option('display.max_columns', None)
pandas.set_option('display.width', 1000)

18
投票

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

data_all2.columns.tolist()

或者在脚本中这样:

print(data_all2.columns.tolist())

13
投票

如果您想查看 Pandas df.head() 中的所有列,请在运行代码之前使用此代码片段。所有列数据都将可见。

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

创建数据框后,尝试一下。

df.head()

它将打印所有列,而不是在较大的数据集中显示“....”。


9
投票

对我有用的是以下内容:

pd.options.display.max_seq_items = None

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


9
投票

我发现的最简单的方法就是

list(df.columns)

就我个人而言,我不想更改全局变量,我并不经常想看到所有列名称。


5
投票

这不是传统的答案,但我想您可以转置数据框以查看行而不是列。我使用它是因为我发现查看行比查看列更“直观”:

data_all2.T

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

如果行仍然被截断,只需使用

print(data_all2.T)
查看所有内容。


4
投票

你可以试试这个

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

4
投票

试试这个 -

df.columns.values


3
投票

要获取所有列名称,您可以迭代

data_all2.columns

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

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


3
投票

你可以这样做

df.info(show_counts=True)

它将显示所有列。将

show_counts
设置为
True
将显示
not_null
数据的计数。


3
投票
for i in df2.columns.tolist():
  print(i)

2
投票

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

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

会导致所有内容都以制表符分隔打印出来 当然,请注意,有 102 个名字,而且都很长,读起来会有点困难


2
投票

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

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

2
投票
df.head(None)

这样,你就可以用格式数据框看到所有的东西。 你需要写

data_all2.head(None)

2
投票

在控制台上打印每一列的首选功能是:

pandas.set_option('display.expand_frame_repr', False)

1
投票

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

cols = data_all2.columns

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

cols[11:20]

1
投票

我有很多重复的列名,一旦我跑了

df = df.loc[:,~df.columns.duplicated()]

我能够看到完整的栏目列表

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


1
投票

我可能偏离了主题,但我带着同样类型的问题来到这个线程,我发现如果你想查看长列表和索引中的所有内容,这是一个简单的答案。

这是我在 Spyder 中使用的:

print(df.info()) 

或者这就是 Jupyter 所需要的:

df.info()

1
投票

“df.types”获取数据框“df”的所有列作为行输出,作为额外的奖励,您还将获得数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.