2014-12-06 23 views
0

該程序效果很好,但輸出結果不符合我想要的格式。正如您可以從下面的輸出中看到的那樣,「從」和「到」數據的打印輸出與「路線」和「日期」的打印輸出不在同一水平。這怎麼解決?我希望從日期,路線的輸出來自同一層次。需要修復Pandas數據幀的輸出

 date route 
    0 05/15/2014 C000001  from  to 
    0 278.7 278.6 
     date route 
    0 05/15/2014 C000001  from  to 
    0 278.6 278.5 

此外,該程序應該遍歷任意數量的.txt文件。但它只適用於目標目錄中只有一個文本文件。

def array_setter(): 
    import os 
    import glob 
    import numpy as np 
    import pandas as pd 
    os.chdir\ 
    ('/Users/thomaswolff/Documents/Data Exports') 
    for file in glob.glob('*.TXT'): 
     reader = open(file) 
     headerLine = reader.readline() 
     mainBody = reader.readlines() 
     for col in mainBody: 
      valueList = col.split(",") 
      data = np.array([valueList]) 

      arrstr = data[:,[0,1]] 
      arrnum = data[:,[5,6]].astype(np.float) 

      dstr = pd.DataFrame(arrstr,columns=['date','route']) 
      dnum = pd.DataFrame(arrnum,columns=['from','to']) 

      routes = dstr['route'] == 'C000001' 
      from_ = dnum['from'] > 278.5 

      if routes == True: 
       if from_ == True: 
        print dstr,dnum 
array_setter() 

回答

1

我有同樣的問題太窄的輸出,並與 解決它把(假設import pandas as pd

pd.set_option('display.width', 130)  

某處文件的開頭。只是爲了完整性我也會提

pd.set_option('display.max_rows', 500) 
pd.set_option('display.max_columns', 50)  

更多選項和示例見pandas documentation

至於通過* .txt文件沒有迭代,它可以是你的「的山坳」循環只需要額外的縮進?這就是它在您的帖子中顯示時的縮進方式。您的「for file」循環已完成,只有您的「for col」循環開始。

順便說一句,這兩個for循環內的縮進都顯示爲雙縮進,不應該是。

+0

那你對縮進肯定是正確的。有趣的是,這樣一個簡單的修補程序可以不被注意到。關於顯示寬度,我在pandas導入下面放置了pd.set_option('display_width',130),它產生了這個輸出:KeyError:'沒有這樣的鍵'。 – 2014-12-06 20:11:00

+0

我檢查了我的代碼,沒有什麼比這更特別的了。熊貓文檔顯示相同的代碼(鏈接插入答案)。我會檢查的唯一一個瘋狂的想法是:你是否可以從我的文章中複製命令,單引號被其他東西替換(例如,後引號)? – lanenok 2014-12-06 20:51:45

+0

不是引號是引號。我甚至用雙引號確認。我使用Spyder python IDE,並在它指出的pandas選項和設置文檔中注意到:請注意,IPython筆記本,IPython qtconsole或IDLE不在終端中運行,因此無法正確檢測寬度。這是否會導致該命令不起作用? – 2014-12-06 20:57:05