首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在pandas中输出数据框中所有列的数据

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

Stack Overflow用户
提问于 2012-07-06 20:12:50
回答 7查看 266.5K关注 0票数 122

我有一个名为params.csv的csv文件。我打开ipython qtconsole并使用以下命令创建了一个熊猫dataframe

代码语言:javascript
复制
import pandas
paramdata = pandas.read_csv('params.csv', names=paramnames)

其中,paramnames是字符串对象的python列表。paramnames示例(实际列表长度为22):

代码语言:javascript
复制
paramnames = ["id",
"fc",
"mc",
"markup",
"asplevel",
"aspreview",
"reviewpd"]

在ipython提示符下,如果我输入paramdata并按enter,则不会得到Pandas website上的示例中所示的包含列和值的数据帧。取而代之的是,我获得了有关数据帧的信息。我得到了:

代码语言:javascript
复制
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)在pandas网站上的示例中(例如,请参阅此处的df输出:http://pandas.sourceforge.net/indexing.html#additional-column-access),输入数据帧的名称会给出实际数据。为什么我得到的是如上所示的数据帧信息,而不是实际数据?我需要在某个地方设置一些输出选项吗?

(2)如何将数据帧中的所有列输出到屏幕上,而不必键入它们的名称,即不必键入paramdata[['id','fc','mc']]之类的内容。

我使用的是pandas 0.8版。

谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-07-06 20:18:27

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

如果您想输出数据(它可能无法显示在屏幕上,而且看起来也不是很好):

代码语言:javascript
复制
print paramdata.values

将数据帧转换为其数值数组矩阵表示形式。

代码语言:javascript
复制
paramdata.columns

存储各自的列名和

代码语言:javascript
复制
paramdata.index

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

票数 46
EN

Stack Overflow用户

发布于 2012-11-06 02:13:43

使用:

代码语言:javascript
复制
pandas.set_option('display.max_columns', 7)

这将强制Pandas显示您拥有的7列。或者更一般地说:

代码语言:javascript
复制
pandas.set_option('display.max_columns', None)

这将强制它显示任意数量的列。

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

或者,您可以使用以下命令更改控制台宽度(以字符为单位),而不是默认值80:

代码语言:javascript
复制
pandas.set_option('display.width', 200)
票数 301
EN

Stack Overflow用户

发布于 2013-05-28 18:32:51

我知道这是一个老问题,但我刚刚遇到了类似的问题,我想我所做的对你也是有效的。

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

代码语言:javascript
复制
import sys

paramdata.to_csv(sys.stdout)

这应该会转储整个数据帧,无论它是否可以很好地打印,并且您可以使用to_csv参数来配置列分隔符、是否打印索引等。

编辑:现在可以使用None作为.to_csv()的目标,具有类似的效果,这可以说要好得多:

代码语言:javascript
复制
paramdata.to_csv(None)
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11361985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档