2015-11-06 79 views
1

我有一個Excel表,我通過數據= pd.read_excel(「.. data.xlsx」)迭代通過條件大熊貓蟒行

Block Concentration Name Replicate Value 
1   100   A   1  1446 
1   100   A   2  25 
1   100   A   3  12 
1   33   A   1  111 
1   33   A   2  222 
1   33   A   3  1234 
... 
1   0   C   3   86 
.. 
2   100   A   1  634 
2   100   A   2  93 
2   100   A   3  287 
2   33   A   1  97234 
2   33   A   2  1222 
2   33   A   3  456 
... 
2   0   D   3   9800 
... 
... 

24   0   E   3   93948 

有24個塊,4種類型的濃度在讀和許多名字。每個「Block | Concentration | Name」組合有三個重複項,它們指向唯一的「值」數字。

我創建了一個字典 'd' 與哈希:

hash{Block|Concentration|Name|Replicate} -> value 

僞代碼:

for block 1-> 24: 
    for each concentration: 
      print (concentration) 
      for each name: 
       for replicate 1-> 3: 
        print key of hash{Block|Concentration|Name|Replicate} 

我的代碼:

for b in data.Block: 
    for c in data.Concentration: 
    print(c) 
    for n in data.Name: 
     for r in data.Replicate: 
      print(d) 

結果一塌糊塗,我想它打印出每個循環的所有內容。

輸出結構,我已銘記在心(輸出並不需要在格式):

Block1   
Concentration   Name A     Name B   Name C.. 
    100     1446 25 12   .. .. ..  ... 
    33     111 222 1234  .. .. .. 
    10     ..      .. .. .. 
    0     ..      .. .. .. 


Block2   
Concentration   Name A     Name B   Name C.. 
    100     634 93 287   .. .. ..  ... 
    33     97234 1222 456   .. .. .. 
    10     ..      .. .. .. 
    0     ..      .. .. .. 

.. 
.. 
.. 
Block 24 ... 

回答

1

您可以使用pivot_table

In [11]: df 
Out[11]: 
    Block Con Name Replicate Mean 
0  1 100 A   1 20 
1  1 100 A   2 10 
2  1 100 A   3 30 
3  1 100 B   1 40 
4  1 100 B   2 12 
5  1 100 B   3 23 
6  1 33 A   1 56 
7  1 33 A   2 234 
8  1 33 A   3 377 
9  1 33 B   1 434 
10  1 33 B   2 1232 
11  1 33 B   3 233 

In [12]: df.pivot_table(index=["Block", "Con"], columns=["Name", "Replicate"], values="Mean") 
Out[12]: 
Name  A    B 
Replicate 1 2 3 1  2 3 
Block Con 
1  33 56 234 377 434 1232 233 
     100 20 10 30 40 12 23 
+0

的感謝!我可以outfile pivot_table使用data.to_excel?還是應該使用別的東西? – Jessica

+0

@Jessica yup,最簡單的方法是使用['to_excel'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html)。 –

+0

這已經讓我頭痛很多天了!非常感謝!你救了我的生命:) :) :) @Andy Hayden – Jessica