输出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)