2015-04-27 53 views
29

我正在看似非常简单的事情挣扎。我有一个熊猫数据帧包含非常长的字符串。打印熊猫数据帧的完整字符串

df = pd.DataFrame({'one' : ['one', 'two', 'This is very long string very long string very long string veryvery long string']}) 

现在,当我尝试打印一样的,我没有看到完整的字符串,而我看到的只是字符串的一部分。

我尝试使用以下的打印选项

  • (df.iloc [2])
  • 使用to_html使用to_string
  • 其中一个计算器答案的
  • 建议使用由 增加列宽熊猫显示选项,这也没有工作。
  • 我也没有得到如何set_printoptions会帮助我。

任何想法赞赏。看起来很简单,但无法得到它!

+0

你应该接受一个答案。 –

回答

46

您可以使用options.display.max_colwidth指定你想看到更多的默认表示:

In [2]: df 
Out[2]: 
               one 
0            one 
1            two 
2 This is very long string very long string very... 

In [3]: pd.options.display.max_colwidth 
Out[3]: 50 

In [4]: pd.options.display.max_colwidth = 100 

In [5]: df 
Out[5]: 
                       one 
0                    one 
1                    two 
2 This is very long string very long string very long string veryvery long string 

事实上,如果你只是想检查一个值,通过访问(如标,而不是作为一个行作为df.iloc[2]一样),也可以看到完整的字符串:

In [7]: df.iloc[2,0] # or df.loc[2,'one'] 
Out[7]: 'This is very long string very long string very long string veryvery long string' 
+0

df.iloc [2,0] - does not work - 我将打印第一行和第三行并切割( – Rocketq

+0

)如果您想要第三行和第一列的元素,它会工作,如果您想要其他内容,请打开一个新的问题 – joris

+0

它工作,thx!我有一列的邮政编码在1列,并使用应用找到最小和最大列明智使用函数:df ['zipcodeMinMax'] = df.loc [:,['zipcodeList' ]]。apply(createMinMaxZipcode,axis = 1)。因此在函数中,我在系列上做了to_string(stringZipcodes = zipcodeList.to_string(header = False,index = False))。结束,例如“1111 ...”。事实上,如果您根据索引和列(作为标量)选择值,则不会发生这种情况。我的问题:为什么这种行为?设置显示选项以影响应用对我来说似乎很陌生?谢谢! – Wouter

4

这是你的意思吗?

In [7]: x = pd.DataFrame({'one' : ['one', 'two', 'This is very long string very long string very long string veryvery long string']}) 

In [8]: x 
Out[8]: 
               one 
0            one 
1            two 
2 This is very long string very long string very... 

In [9]: x['one'][2] 
Out[9]: 'This is very long string very long string very long string veryvery long string' 
0

我经常处理您所描述的情况的方法是使用.to_csv()方法和写入stdout:

import sys 

df.to_csv(sys.stdout) 

这应该放弃整个数据帧,包括任何串的全部。您可以使用to_csv参数来配置列分隔符,是否打印索引等等。但是,它不会比正确渲染它的漂亮。

我原本在回答多少有些相关的问题在Output data from all columns in a dataframe in pandas

0

另一张贴了这个,很简单的方法是调用列表功能:

list(df['one'][2]) 
# output: 
['This is very long string very long string very long string veryvery long string'] 

不值得一提,那就是不好修道院列出整个列,但对于一个简单的线 - 为什么不