Hoe toon je de namen van alle kolommen in een groot panda-dataframe?

Ik heb een dataframe dat uit honderden kolommen bestaat en ik moet alle kolomnamen zien.

Wat ik deed:

In[37]:
data_all2.columns

De uitvoer 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)

Hoe toon ik allekolommen, in plaats van een afgekapte lijst?


Antwoord 1, autoriteit 100%

U kunt de afdrukopties globaal instellen. Ik denk dat dit zou moeten werken:

Methode 1:

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

Methode 2:

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

Hierdoor kunt u alle kolomnamen & rijen wanneer u .head()doet. Geen van de kolomnamen wordt afgekapt.


Als u alleen de kolomnamen wilt zien, kunt u het volgende doen:

print(df.columns.tolist())

Antwoord 2, autoriteit 17%

Om alle kolomnamen van een DataFrame, df_datain dit voorbeeld, te verkrijgen, hoeft u alleen het commando df_data.columns.valueste gebruiken.
Dit toont u een lijst met alle kolomnamen van uw dataframe

Code:

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

Uitvoer:

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

Antwoord 3, autoriteit 5%

In de interactieve console is het eenvoudig om te doen:

data_all2.columns.tolist()

Of dit in een script:

print(data_all2.columns.tolist())

Antwoord 4, autoriteit 5%

Dit zal het lukken. Let op het gebruik van display()in plaats van print.

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

BEWERKEN:

Het gebruik van displayis vereist omdat de instellingen van pd.option_contextalleen van toepassing zijn op displayen niet op print.


Antwoord 5, autoriteit 2%

Wat voor mij werkte, was het volgende:

pd.options.display.max_seq_items = None

Je kunt het ook instellen op een geheel getal dat groter is dan je aantal kolommen.


Antwoord 6

Geen conventioneel antwoord, maar ik denk dat je het dataframe kon omzetten om naar de rijen te kijken in plaats van de kolommen. Ik gebruik dit omdat ik kijk naar rijen meer ‘intuïtioneel’ dan naar kolommen kijken:

data_all2.T

Dit moet je alle rijen laten zien. Deze actie is niet permanent , het laat het gewoon de transponeerde versie van het dataframe bekijken.

Als de rijen nog steeds worden afgekapt, gebruik gewoon print(data_all2.T)om alles te bekijken.


Antwoord 7

De eenvoudigste manier die ik heb gevonden, is slechts

list(df.columns)

Persoonlijk zou ik de globals niet willen veranderen, het is niet zo vaak dat ik alle namen van de kolommen wil zien.


Antwoord 8

Om alle kolomnaam te krijgen, kunt u over de data_all2.columns.

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

U krijgt alle kolomnamen.
Of u kunt alle kolomnamen opslaan op een andere lijstvariabele en vervolgens afdrukken.


Antwoord 9

Ik weet dat het een herhaling is, maar ik eindig altijd aan het plakken en het wijzigen van het antwoord van Yolo:

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

Antwoord 10

U kunt dit proberen

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

Antwoord 11

Als u alleen alle kolommen wilt zien, kunt u iets van dit soort doen als een snelle oplossing

cols = data_all2.columns

nu zal cols zich gedragen als een iteratieve variabele die kan worden geïndexeerd. bijvoorbeeld

cols[11:20]

Antwoord 12

Een snelle en vuile oplossing zou zijn om het naar een string te converteren

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

zodat ze allemaal worden afgedrukt, gescheiden door tabbladen
Houd er natuurlijk rekening mee dat met 102 namen, allemaal nogal lang, dit een beetje moeilijk zal zijn om door te lezen


Antwoord 13

Ik had veel dubbele kolomnamen en toen ik eenmaal liep

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

Ik heb de volledige lijst met kolommen kunnen zien

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

Other episodes