Mam ramkę danych, która składa się z setek kolumn i muszę zobaczyć wszystkie nazwy kolumn.
Co ja zrobiłem:
In[37]:
data_all2.columns
Wynik to:
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)
Jak wyświetlić wszystkie kolumny zamiast skróconej listy?
Aby uzyskać wszystkie nazwy kolumn DataFrame,
df_data
w tym przykładzie wystarczy użyć poleceniadf_data.columns.values
. Spowoduje to wyświetlenie listy ze wszystkimi nazwami kolumn Twojej DataframeKod:
df_data=pd.read_csv('../input/data.csv') print(df_data.columns.values)
Wynik:
['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']
źródło
W konsoli interaktywnej łatwo to zrobić:
Lub to w skrypcie:
źródło
To wystarczy. Zwróć uwagę na użycie
display()
zamiast print.with pd.option_context('display.max_rows', 5, 'display.max_columns', None): display(my_df)
EDYTOWAĆ:
Użycie
display
jest wymagane, ponieważpd.option_context
ustawienia mają zastosowanie tylko do,display
a nie doprint
.źródło
with
słowo kluczowe stosuje tę opcję tylko do poniższego bloku. Jednak działa dobrze zprint()
. Dlaczego miałbym używaćdisplay()
zamiastprint()
?U mnie zadziałało:
pd.options.display.max_seq_items = None
Możesz również ustawić liczbę całkowitą większą niż liczba kolumn.
źródło
Najłatwiejszy sposób, jaki znalazłem, to po prostu
Osobiście nie chciałbym zmieniać globali, nie jest tak często, że chcę zobaczyć wszystkie nazwy kolumn.
źródło
Aby uzyskać wszystkie nazwy kolumn, możesz iterować po
data_all2.columns
.columns = data_all2.columns for col in columns: print col
Otrzymasz wszystkie nazwy kolumn. Lub możesz zapisać wszystkie nazwy kolumn w innej zmiennej listy, a następnie wydrukować listę.
źródło
Jeśli chcesz tylko zobaczyć wszystkie kolumny, możesz zrobić coś takiego jako szybką naprawę
teraz cols będą zachowywać się jak zmienna iteracyjna, która może być indeksowana. na przykład
cols[11:20]
źródło
Szybkim i brudnym rozwiązaniem byłoby przekonwertowanie go na ciąg
print('\t'.join(data_all2.columns))
spowodowałoby wydrukowanie ich wszystkich oddzielonych tabulatorami Oczywiście zwróć uwagę, że przy 102 nazwach, wszystkie są dość długie, będzie to trochę trudne do odczytania
źródło
Miałem wiele zduplikowanych nazw kolumn i raz pobiegłem
Udało mi się zobaczyć pełną listę kolumn
Kredyt: https://stackoverflow.com/a/40435354/5846417
źródło
możesz tego spróbować
pd.pandas.set_option('display.max_columns', None)
źródło
Nie jest to konwencjonalna odpowiedź, ale myślę, że można przetransponować ramkę danych, aby spojrzeć na wiersze zamiast kolumn. Używam tego, ponieważ uważam, że patrzenie na wiersze jest bardziej „intuicyjne” niż patrzenie na kolumny:
Powinno to umożliwić wyświetlenie wszystkich wierszy. Ta czynność nie jest trwała , umożliwia jedynie wyświetlenie transponowanej wersji ramki danych.
Jeśli wiersze są nadal obcięte, po prostu użyj,
print(data_all2.T)
aby wyświetlić wszystko.źródło
Wiem, że to powtórzenie, ale zawsze kończy się na kopiowaniu, wklejaniu i modyfikowaniu odpowiedzi YOLO:
pd.set_option('display.max_columns', 500) pd.set_option('display.max_rows', 500)
źródło