我有一个excel表,我通过data = 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 ...
答案 0 :(得分: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