Pandas printing ALL dtypes
Asked Answered
M

3

52

This seems like a very simple problem, however it's driving me round the bend. I'm sure it should be solved by RTFM, but I've looked at the options and I can see the one to fix it.

I just want to print the dtypes of all columns, currently I'm getting:

print df.dtypes
#>
Date         object
Selection    object
Result       object
...
profit    float64
PL        float64
cumPL     float64
Length: 11, dtype: object

I've tried setting options display.max_row, display.max_info_row, display.max_info_columns all to no avail.

What am i doing wrong?

Pandas version = 0.13.1


Update:

Turns out I was being and idiot and hadn't set display.max_row to a high enough value.

Solution was:

pd.set_option('display.max_rows', 20)
Medievalism answered 19/4, 2014 at 9:40 Comment(4)
I think you've must have set it to a very low number yourself (the display.max_rows), because that is 60 by default (so a series of 11 elements would never be truncated)Hokkaido
it was set to 10, i was being dumb.Medievalism
When going for raw printouts, I usually default to something like print dict(df.dtypes)Gilgai
How about columns?Algonkian
H
72

I tried this and worked:

df.info(verbose=True)
Hayseed answered 16/10, 2018 at 8:23 Comment(0)
M
15

Do this:

with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print(df.dtypes)
Mohandis answered 9/12, 2019 at 7:44 Comment(0)
T
10

another way around is to group by dtype as follows:

x = df.columns.to_series().groupby(df.dtypes).groups
x
{dtype('object'): ['Date', 'Selection', 'Result'], dtype('float64'): ['profit', 'PL', 'cumPL'] 
Thomson answered 16/5, 2017 at 7:52 Comment(1)
how do you access the elements of that dictionary?Evidentiary

© 2022 - 2024 — McMap. All rights reserved.