输出pandas数据框中所有列的数据

我有一个名为params.csv的csv文件。 我打开ipython qtconsole并创build一个pandasdataframe ipython qtconsole使用:

 import pandas paramdata = pandas.read_csv('params.csv', names=paramnames) 

其中, paramnames是一个string对象的python列表。 参数名称的例子(实际列表的长度是22):

 paramnames = ["id", "fc", "mc", "markup", "asplevel", "aspreview", "reviewpd"] 

在ipython提示符下,如果我inputparamdata并按下回车键,那么我不会得到像Pandas网站上的示例所示的列和值的数据paramdata 。 相反,我得到有关数据框的信息。 我得到:

 In[35]: paramdata Out[35]: <class 'pandas.core.frame.DataFrame'> Int64Index: 59 entries, 0 to 58 Data columns: id 59 non-null values fc 59 non-null values mc 59 non-null values markup 59 non-null values asplevel 59 non-null values aspreview 59 non-null values reviewpd 59 non-null values 

如果我inputparamdata['mc']那么我确实得到mc列的预期值。 我有两个问题:

(1)在pandas网站的例子中(例如,参见df的输出: http : //pandas.sourceforge.net/indexing.html#additional-column-access )键入数据框的名称给出实际数据。 为什么我如上所示获取有关数据框的信息而不是实际的数据? 我需要在某处设置一些输出选项吗?

(2)如何输出数据框中的所有列到屏幕上,而不必input他们的名字,也就是说,不必input像paramdata[['id','fc','mc']]

我正在使用pandas版本0.8。

谢谢。

屏幕上显示的数据太多,因此会显示摘要。

如果你想输出数据(它不会适合在屏幕上,看起来不太好):

 print paramdata.values 

将dataframe转换为它的numpy-arraymatrix表示。

 paramdata.columns 

存储各自的列名和

 paramdata.index 

存储相应的索引(行名称)。

使用:

 pandas.set_option('display.max_columns', 7) 

这将迫使大pandas显示你有7个列。 或者更一般地说:

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

这将迫使它显示任意数量的列。

说明: max_columns的默认值是0 ,它告诉Pandas只有当所有列都可以被挤压到控制台的宽度时才显示表格。

我知道这是一个古老的问题,但我也遇到过类似的问题,我想我也会为你效劳。

我使用to_csv()方法写入标准输出:

 import sys paramdata.to_csv(sys.stdout) 

这应该转储整个数据框,不pipe它是否打印良好,您可以使用to_csv参数来configuration列分隔符,索引是否打印等。

ipython ,我使用它来打印一个数据ipython的一部分,工作得很好(打印前100行):

 print paramdata.head(100).to_string() 

您还可以使用DataFrame.head(x) / .tail(x)显示.tail(x)的第一个/最后一个x行。

你可以使用序列切片语法即

 paramdata[:5] # first five records paramdata[-5:] # last five records paramdata[:] # all records 

有时数据框可能不适合屏幕缓冲区,在这种情况下,您可能最好打印一个小子集或将其导出到其他位置,打印或再次(csv)