我有一个由数百列组成的数据框,我也需要查看所有列名称。
我做了什么:
In[37]:
data_all2.columns
输出是:
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)
如何显示所有列,而不是截断列表?
您可以全局设置打印选项。我认为这应该有效:
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
这样您就可以在执行.head()
时查看所有列名和行。列名称都不会被截断。
如果您只想查看列名称,可以执行以下操作:cols = df.columns.tolist()
要在此示例中获取DataFrame的所有列名称df_data
,您只需使用命令df_data.columns.values
。这将显示包含Dataframe的所有列名称的列表
码:
df_data=pd.read_csv('../input/data.csv')
print(df_data.columns.values)
输出:
['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']
在交互式控制台中,它很容易做到:
data_all2.columns.tolist()
或者在脚本中:
print(data_all2.columns.tolist())
要获取所有列名称,您可以迭代data_all2.columns
。
columns = data_all2.columns
for col in columns:
print col
您将获得所有列名称。或者,您可以将所有列名存储到另一个列表变量,然后打印列表。
对我有用的是:
pd.options.display.max_seq_items = None
您还可以将其设置为大于列数的整数。
如果您只想查看所有列,您可以执行此类操作作为快速修复
cols = data_all2.columns
现在cols将表现为可以索引的迭代变量。例如
cols[11:20]
一个快速而肮脏的解决方案是将其转换为字符串
print('\t'.join(data_all2.columns))
会导致所有这些都被标签分开打印当然,请注意,有102个名字,所有这些都很长,这将有点难以阅读
我有很多重复的列名,一旦我跑了
df = df.loc[:,~df.columns.duplicated()]
我能够看到完整的列列表