使用Python处理96孔板中的数据标签

1 投票
1 回答
18055 浏览
提问于 2025-04-18 06:51

我有一份来自96孔板的数据(大部分在Excel里):

96孔板的示意图,来源于 http://www.cellsignet.com

在这里输入图片描述
(来源: cellsignet.com)

在每个孔里,我们可以进行一些实验并读取数值,数据大致如下:

    1    2    3    4    .    . 
A   9.1  8.7  5.6  4.5
B   8.7  8.5  5.4  4.3
C   4.3  4.5  7.6  6.7
D   4.1  6.0  7.0  6.1
.

我还有一些包含样本名称的Excel文件:

    1    2    3    4    .    . 
A   l1   l2   l3   l4 
B   l1   l2   l3   l4
C   ds1  ds2  ds3  ds4
D   ds1  ds2  ds3  ds4
.

重复的条目是指两个孔里加载了相同的样本。

我想读取这些数据(这没问题),然后把标签分配给数据点,并根据标签对数据进行分组。在pandas中,我可以根据列和行的标题读取数据并进行分组。但我该如何根据样本名称进行分组呢?

1 个回答

1

我建议你创建一个 DataFrame,里面有两列,一列用来存储名字,另一列用来存储读数。

In [20]:

print data_df
print name_df
     1    2    3    4
A  9.1  8.7  5.6  4.5
B  8.7  8.5  5.4  4.3
C  4.3  4.5  7.6  6.7
D  4.1  6.0  7.0  6.1

[4 rows x 4 columns]
     1    2    3    4
A   l1   l2   l3   l4
B   l1   l2   l3   l4
C  ds1  ds2  ds3  ds4
D  ds1  ds2  ds3  ds4

[4 rows x 4 columns]
In [21]:

final_df=pd.DataFrame({'Name':name_df.values.ravel(), 'Reading':data_df.values.ravel()})
#if you have additional readings, i.e. from a different assay,
#from a different wavelength, add them there, as:
#'OTHER_Reading':OTHER_data_df.values.ravel()
print final_df
   Name  Reading
0    l1      9.1
1    l2      8.7
2    l3      5.6
3    l4      4.5
4    l1      8.7
5    l2      8.5
6    l3      5.4
7    l4      4.3
8   ds1      4.3
9   ds2      4.5
10  ds3      7.6
11  ds4      6.7
12  ds1      4.1
13  ds2      6.0
14  ds3      7.0
15  ds4      6.1

[16 rows x 2 columns]

这样的话,你就可以很简单地进行一些计算,比如:

In [22]:

print final_df.groupby('Name').mean()
      Reading
Name         
ds1      4.20
ds2      5.25
ds3      7.30
ds4      6.40
l1       8.90
l2       8.60
l3       5.50
l4       4.40

[8 rows x 1 columns]

撰写回答