输出来自熊猫数据框中所有列的数据
我有一个名为params.csv
的csv文件。我打开了ipython qtconsole
和使用创造了大熊猫dataframe
:输出来自熊猫数据框中所有列的数据
import pandas
paramdata = pandas.read_csv('params.csv', names=paramnames)
其中,paramnames
是字符串对象的Python列表。的paramnames
(实际列表的长度为22)实施例:
paramnames = ["id",
"fc",
"mc",
"markup",
"asplevel",
"aspreview",
"reviewpd"]
在IPython的提示,如果I型paramdata
并按下确认键然后如实施例所示在Pandas website我没有得到列和值数据帧。相反,我得到关于数据框的信息。我得到:
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
如果键入paramdata['mc']
然后我预期的mc
列获取值。我有两个问题:
(1)在熊猫网站的例子中(例如,请参阅df
的输出:http://pandas.sourceforge.net/indexing.html#additional-column-access),输入数据框的名称会给出实际数据。为什么我如上所示获取有关数据框的信息而不是实际数据?我需要在某处设置一些输出选项吗? (2)如何将数据框中的所有列输出到屏幕而不必键入其名称,即不必输入类似paramdata[['id','fc','mc']]
之类的内容。
我正在使用熊猫版本0.8。
谢谢。
屏幕上显示的数据太多,因此会显示摘要。
如果你想输出的数据呢(它不会可能适合在屏幕上,不看非常好):
print paramdata.values
转换数据帧其numpy的阵列矩阵表示。
paramdata.columns
存储各列名和
paramdata.index
存储各个指数(行的名称)。
-1,因为我认为'set_printoptions'应该被提及。 'paramdata.values'不是一个好的解决方案,因为'numpy'可能不会显示全部(取决于大小),并且索引信息会丢失。 – bmu 2012-07-22 15:46:44
您还可以使用DataFrame.head(x)
/.tail(x)
显示DataFrame的第一个/最后一个x行。
可以使用序列切片语法即
paramdata[:5] # first five records
paramdata[-5:] # last five records
paramdata[:] # all records
有时数据框可能不适合在这种情况下,你可能会更好过屏幕缓冲区或者印刷的一小部分,或者出口到别的东西,情节或(再次CSV)
用途:
pandas.set_option('display.max_columns', 7)
这将迫使熊猫,显示你有7列。或更一般地说:
pandas.set_option('display.max_columns', None)
这将强制它显示任意数量的列。
说明:max_columns
的默认值为0
,它告诉Pandas只有在所有列都可以挤入控制台宽度时才显示表格。
set_option似乎是新的,也许从版本0.13?对于早期版本,请尝试pd.set_printoptions(max_columns = 7)请参阅http://stackoverflow.com/questions/11707586/python-pandas-widen-output-display – nealmcb 2013-12-12 20:13:32
这应该是被接受的答案.... – 2016-07-19 22:43:01
我知道这是一个老问题,但我刚刚有一个类似的问题,我想我所做的也会为你工作。
我用to_csv()方法,并写到标准输出:
import sys
paramdata.to_csv(sys.stdout)
这应该放弃整个数据框无论是精美的打印的或没有,你可以使用to_csv参数配置列分隔符,无论是索引打印等
在ipython
,我使用它来打印工作的很好的数据帧的一部分(打印第一100行):
print paramdata.head(100).to_string()
近乎重复http://stackoverflow.com/questions/11707586/python-pandas-widen-output-display – nealmcb 2013-12-12 20:14:17