2015-02-06 149 views
5

DataFrames的我已經在2個測量A和B的以下數據幀採集每日統計:數據幀與熊貓

    A    B 
count 17266.000000 17266.000000 
std  0.179003  0.178781 
75%  101.102251 101.053214 
min  100.700993 100.651956 
mean  101.016747 100.964003 
max  101.540214 101.491178 
50%  100.988465 100.938694 
25%  100.885251 100.830048 

下面是一段代碼創建它:

day1 = { 
    'A': { 
    'count': 17266.0, 
    'std': 0.17900265293286116, 
    'min': 100.70099294189714, 
    'max': 101.54021448871775, 
    '50%': 100.98846526697825, 
    '25%': 100.88525124427971, 
    '75%': 101.10225131847992, 
    'mean': 101.01674677794136 
    }, 
    'B': { 
    'count': 17266.0, 
    'std': 0.17878125983374854, 
    'min': 100.65195609992342, 
    'max': 101.49117764674403, 
    '50%': 100.93869409089723, 
    '25%': 100.83004837814667, 
    '75%': 101.05321447650618, 
    'mean': 100.96400305527138 
    } 
} 
df = pandas.DataFrame.from_dict(day1, orient='index').T 

的數據來從describe()中取出。我有幾個這樣的描述(每天一個),我想將它們全部收集到一個單一的數據框中,該數據框以日期爲索引。

最明顯的獲取方法是將所有日常結果疊加到一個數據框中,然後按日期對其進行分組並在結果上運行統計信息。不過,我想要一個替代方法,因爲我遇到了一個MemoryError和我處理的數據量。

的最終結果應該是這樣的:

     A   B  
2014-12-24 count 15895.000000 15895.000000 
     mean  99.943618  99.968860 
     std  0.012468  0.011932 
     min  99.877695  99.928778 
     25%  99.934890  99.960445 
     50%  99.943453  99.968847 
     75%  99.952340  99.977571 
     max  99.982930 100.002507 
2014-12-25 count 16278.000000 16278.000000 
     mean  99.937056  99.962203 
     std  0..012661 
     min  99.884501  99.910567 
     25%  99.928078  99.953758 
     50%  99.936754  99.962411 
     75%  99.945914  99.971473 
     max  99.981512 100.003770 
+1

您是否可以製作「{date:describe_df_for_that_day}」的字典?然後你可以使用'pd.concat(dict)' – joris 2015-02-06 15:39:13

+0

是的,我當然是...這簡直太簡單了,但它很好用,謝謝!如果您將評論升級爲答案,我會很樂意接受。 – Christophe 2015-02-06 21:09:09

回答

8

如果你能做出的字典{日期:describe_df_for_that_day},那麼你可以使用pd.concat(dict)

df開始:

In [14]: d = {'2014-12-24': df, '2014-12-25': df} 

In [15]: pd.concat(d) 
Out[15]: 
          A    B 
2014-12-24 count 17266.000000 17266.000000 
      std  0.179003  0.178781 
      75%  101.102251 101.053214 
      min  100.700993 100.651956 
      mean  101.016747 100.964003 
      max  101.540214 101.491178 
      50%  100.988465 100.938694 
      25%  100.885251 100.830048 
2014-12-25 count 17266.000000 17266.000000 
      std  0.179003  0.178781 
      75%  101.102251 101.053214 
      min  100.700993 100.651956 
      mean  101.016747 100.964003 
      max  101.540214 101.491178 
      50%  100.988465 100.938694 
      25%  100.885251 100.830048 

當然你可以使按鍵實際日期,而不是字符串。