2015-04-27 94 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'] 

不值得一提,那就是不好修道院列出整個列,但對於一個簡單的線 - 爲什麼不