迭代通过条件大熊猫蟒行

问题描述:

我有一个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 ... 

您可以使用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