How to show all columns' names on a large pandas dataframe?

PythonPandasDataframeOptions

Python Problem Overview


I have a dataframe that consist of hundreds of columns, and I need to see all column names.

What I did:

In[37]:
data_all2.columns

The output is:

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)

How do I show all columns, instead of a truncated list?

Python Solutions


Solution 1 - Python

You can globally set printing options. I think this should work:

Method 1:

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

Method 2:

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

This will allow you to see all column names & rows when you are doing .head(). None of the column name will be truncated.


If you just want to see the column names you can do:

print(df.columns.tolist())

Solution 2 - Python

To obtain all the column names of a DataFrame, df_data in this example, you just need to use the command df_data.columns.values. This will show you a list with all the Column names of your Dataframe

Code:

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

Output:

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

Solution 3 - Python

This will do the trick. Note the use of display() instead of print.

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

EDIT:

The use of display is required because pd.option_context settings only apply to display and not to print.

Solution 4 - Python

In the interactive console, it's easy to do:

data_all2.columns.tolist()

Or this within a script:

print(data_all2.columns.tolist())

Solution 5 - Python

What worked for me was the following:

pd.options.display.max_seq_items = None

You can also set it to an integer larger than your number of columns.

Solution 6 - Python

The easiest way I've found is just

list(df.columns)

Personally I wouldn't want to change the globals, it's not that often I want to see all the columns names.

Solution 7 - Python

Not a conventional answer, but I guess you could transpose the dataframe to look at the rows instead of the columns. I use this because I find looking at rows more 'intuitional' than looking at columns:

data_all2.T

This should let you view all the rows. This action is not permanent, it just lets you view the transposed version of the dataframe.

If the rows are still truncated, just use print(data_all2.T) to view everything.

Solution 8 - Python

you can try this

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

Solution 9 - Python

The accepted answer caused my column names to wrap around. To show all the column names without wrapping, set both display.max_columns and the display.width:

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

Solution 10 - Python

A quick and dirty solution would be to convert it to a string

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

would cause all of them to be printed out separated by tabs Of course, do note that with 102 names, all of them rather long, this will be a bit hard to read through

Solution 11 - Python

To get all column name you can iterate over the data_all2.columns.

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

You will get all column names. Or you can store all column names to another list variable and then print list.

Solution 12 - Python

I know it is a repetition but I always end up copy pasting and modifying YOLO's answer:

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

Solution 13 - Python

You can do like this

df.info(show_counts=True)

It will show all the columns. Setting show_counts to True shows the count of not_null data.

Solution 14 - Python

If you just want to see all the columns you can do something of this sort as a quick fix

cols = data_all2.columns

now cols will behave as a iterative variable that can be indexed. for example

cols[11:20]

Solution 15 - Python

I had lots of duplicate column names, and once I ran

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

I was able to see the full list of columns

Credit: https://stackoverflow.com/a/40435354/5846417

Solution 16 - Python

I may be off the mark but I came to this thread with the same type of problem I found this is the simple answer if you want to see everything in a long list and the index.

This is what I use in Spyder:

print(df.info()) 

or this be what is needed in Jupyter:

df.info()

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNabih BawazirView Question on Stackoverflow
Solution 1 - PythonYOLOView Answer on Stackoverflow
Solution 2 - Pythonpink.slashView Answer on Stackoverflow
Solution 3 - PythonnicoView Answer on Stackoverflow
Solution 4 - PythonEEEView Answer on Stackoverflow
Solution 5 - PythonS. TibbittsView Answer on Stackoverflow
Solution 6 - PythonShermanView Answer on Stackoverflow
Solution 7 - PythonAmanView Answer on Stackoverflow
Solution 8 - Pythonnaimur978View Answer on Stackoverflow
Solution 9 - PythonSpirit of the VoidView Answer on Stackoverflow
Solution 10 - PythonDavid LView Answer on Stackoverflow
Solution 11 - PythonAshwani ShakyaView Answer on Stackoverflow
Solution 12 - PythonTomas G.View Answer on Stackoverflow
Solution 13 - PythonAbhishek DuttView Answer on Stackoverflow
Solution 14 - PythonRao SahabView Answer on Stackoverflow
Solution 15 - PythonR.K.View Answer on Stackoverflow
Solution 16 - PythonChris BergeronView Answer on Stackoverflow