This is controlled by the display.max_seq_items
parameter. If you type:
help(pd.set_option)
you can see available parameters and their description. As for this one:
display.max_seq_items : int or None
When pretty-printing a long sequence, no more then `max_seq_items`
will be printed. If items are omitted, they will be denoted by the
addition of "..." to the resulting string.
If set to None, the number of items to be printed is unlimited.
[default: 100] [currently: 100]
Therefore, in order to display all columns by print(df.columns)
, you must specify:
pd.set_option('display.max_seq_items', None)
Or, alternatively, output a list whose printing is not controlled by Pandas:
print(df.columns.tolist())