2013-04-09 50 views
1

我有一個數組,下面的格式的:最小化與公共值的行,列添加額外的值

564387.29 7371625.14 0.00 33030.00 -132.96 -1031.50 

564387.29 7371625.14 0.00 1530.00  -133.85 -1039.27 

564387.29 7371625.14 0.00 47970.00 -138.35 -1044.40 

564387.32 7371625.14 0.00 47970.00 -166.41 -999.27 

564387.32 7371625.14 0.00 33030.00 -241.74 -1889.71 

564387.32 7371625.14 0.00 1530.00  -135.42 -857.31 

564387.35 7371625.14 0.00 33030.00 -174.06 -990.66 

564387.35 7371625.14 0.00 1530.00  -178.17 -927.11 

564387.35 7371625.14 0.00 47970.00 -116.65 -1810.97 

我使陣列的熊貓數據幀,並且基於,2和列1 4對它們進行排序:

564387.29 7371625.14 0.00 1530.00  -133.85 -1039.27 

564387.29 7371625.14 0.00 33030.00 -132.96 -1031.50 

564387.29 7371625.14 0.00 47970.00 -138.35 -1044.40 

564387.32 7371625.14 0.00 1530.00  -135.42 -857.31 

564387.32 7371625.14 0.00 33030.00 -241.74 -1889.71 

564387.32 7371625.14 0.00 47970.00 -166.41 -999.27 

564387.35 7371625.14 0.00 1530.00  -178.17 -927.11 

564387.35 7371625.14 0.00 33030.00 -174.06 -990.66 

564387.35 7371625.14 0.00 47970.00 -116.65 -1810.97 

的最後一步是通過添加額外4列變量以減少的行數,以得到如下:

564387.29 7371625.14 0.00 1530.00 -133.85 -1039.27 -132.96 -1031.50 -138.35 -1044.40 

564387.32 7371625.14 0.00 1530.00 -135.42 -857.31  -241.74 -1889.71 -166.41 -999.27 

564387.35 7371625.14 0.00 1530.00 -178.17 -927.11  -174.06 -990.66  -116.65 -1810.97 

但我似乎無法找到一個辦法 - 我看着許多numpy的和熊貓討論,不能得到任何想法

回答

2
  1. 它根據具體colomns
  2. 集團他們,然後運用我們的定製功能排序

以下是例子:

In [121]: def func(df): 
    .....:  df = df.reset_index(drop=True) 
    .....:  s = [df.ix[0][3]] 
    .....:  for index, rw in df.iterrows(): 
    .....:   s.append(rw[4]) 
    .....:   s.append(rw[5]) 
    .....:  return pd.Series(s) 
    .....: 

In [122]: df.sort([0, 1, 3]).reset_index(drop=True).groupby([0, 1, 2]).apply(func) 
Out[122]: 
          0  1  2  3  4  5  6 
0   1   2               
564387.29 7371625.14 0 1530 -133.85 -1039.27 -132.96 -1031.50 -138.35 -1044.40 
564387.32 7371625.14 0 1530 -135.42 -857.31 -241.74 -1889.71 -166.41 -999.27 
564387.35 7371625.14 0 1530 -178.17 -927.11 -174.06 -990.66 -116.65 -1810.97 
0

@waitingkuo感謝,這將產生我想要的東西;我試圖使用它與我的實際數據,有更多的行需要轉換爲列(每個數據集總共7行,如在例子中只有3行),現在我得到這種格式:

564387.29 7371625.14 0 0 1530.00000

     1  -133.84641 

         2 -1039.27338 

         3  -133.48476 

         4 -1036.76991 

         5  -307.65603 

         6 -1747.01828 

         7  -132.95704 

         8 -1031.49587 

         9  -138.35364 

         10 -1044.39817 

         11 -119.70329 

         12 -981.84015 

         13  -89.65443 

         14 -919.83924 

...

看起來一切都交給分組作品,然後將行不會追加...