我有一个脚本,可以在条件对之间进行线性建模: 数据框如下所示:
Accession Sequence variable value
0 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 39.300171
1 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 132.637125
2 O14548 [R].gLPDQMLYr.[T] DMSO 1165.245826
3 O14548 [R].gLPDQMLYr.[T] DMSO 642.971908
4 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 83.906058
5 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 160.718841
6 O14548 [R].gLPDQMLYr.[T] DMSO 1240.856710
7 O14548 [R].gLPDQMLYr.[T] DMSO 557.508092
8 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 56.228425
9 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 302.346775
10 O14548 [R].gLPDQMLYr.[T] DMSO 1176.998098
11 O14548 [R].gLPDQMLYr.[T] DMSO 766.993819
12 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.387985
13 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.175678
14 O14548 [R].gLPDQMLYr.[T] CCCP 885.174420
15 O14548 [R].gLPDQMLYr.[T] CCCP 130.458963
16 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.557088
17 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.095801
18 O14548 [R].gLPDQMLYr.[T] CCCP 612.171540
19 O14548 [R].gLPDQMLYr.[T] CCCP 46.449990
20 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 6.016590
21 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.466220
22 O14548 [R].gLPDQMLYr.[T] CCCP 586.392482
23 O14548 [R].gLPDQMLYr.[T] CCCP 303.857624
24 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 44.627773
25 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 0.841494
26 O14548 [R].gLPDQMLYr.[T] C+I 632.355914
27 O14548 [R].gLPDQMLYr.[T] C+I 162.333292
28 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 12.075158
29 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 154.253098
30 O14548 [R].gLPDQMLYr.[T] C+I 159.767999
31 O14548 [R].gLPDQMLYr.[T] C+I 1031.399087
32 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 150.724386
33 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] C+I 260.684163
34 O14548 [R].gLPDQMLYr.[T] C+I 141.459156
35 O14548 [R].gLPDQMLYr.[T] C+I 262.659208
我现在想为每对拟合一个线性模型。我通过以下代码获取对:
def tessa(source):
result = []
for p1 in range(len(source)):
for p2 in range(p1+1,len(source)):
result.append([source[p1],source[p2]])
return result
unique_conditions = list(set(conditions))
pairs = tessa(unique_conditions)
print(pairs)
我正在循环对并按数据帧过滤条件:
for pair in pairs:
pair.sort()
print(pair)
print(pair[0],pair[1])
temp=melted_Peptides[(melted_Peptides['variable'].str.contains(pair[0]))|(melted_Peptides['variable'].str.contains(pair[1]))]
print(temp)
问题来了。它没有正确过滤。其输出:
['C+I', 'CCCP']
C+I CCCP
Accession Sequence variable value
12 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.387985
13 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.175678
14 O14548 [R].gLPDQMLYr.[T] CCCP 885.174420
15 O14548 [R].gLPDQMLYr.[T] CCCP 130.458963
16 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.557088
17 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.095801
18 O14548 [R].gLPDQMLYr.[T] CCCP 612.171540
19 O14548 [R].gLPDQMLYr.[T] CCCP 46.449990
20 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 6.016590
21 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.466220
22 O14548 [R].gLPDQMLYr.[T] CCCP 586.392482
23 O14548 [R].gLPDQMLYr.[T] CCCP 303.857624
下一个比较看起来还不错:
['CCCP', 'DMSO']
CCCP DMSO
Accession Sequence variable value
0 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 39.300171
1 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 132.637125
2 O14548 [R].gLPDQMLYr.[T] DMSO 1165.245826
3 O14548 [R].gLPDQMLYr.[T] DMSO 642.971908
4 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 83.906058
5 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 160.718841
6 O14548 [R].gLPDQMLYr.[T] DMSO 1240.856710
7 O14548 [R].gLPDQMLYr.[T] DMSO 557.508092
8 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 56.228425
9 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 302.346775
10 O14548 [R].gLPDQMLYr.[T] DMSO 1176.998098
11 O14548 [R].gLPDQMLYr.[T] DMSO 766.993819
12 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.387985
13 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.175678
14 O14548 [R].gLPDQMLYr.[T] CCCP 885.174420
15 O14548 [R].gLPDQMLYr.[T] CCCP 130.458963
16 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.557088
17 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.095801
18 O14548 [R].gLPDQMLYr.[T] CCCP 612.171540
19 O14548 [R].gLPDQMLYr.[T] CCCP 46.449990
20 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 6.016590
21 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] CCCP 0.466220
22 O14548 [R].gLPDQMLYr.[T] CCCP 586.392482
23 O14548 [R].gLPDQMLYr.[T] CCCP 303.857624
第三个看起来又很奇怪:
['C+I', 'DMSO']
['C+I', 'DMSO']
C+I DMSO
Accession Sequence variable value
0 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 39.300171
1 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 132.637125
2 O14548 [R].gLPDQMLYr.[T] DMSO 1165.245826
3 O14548 [R].gLPDQMLYr.[T] DMSO 642.971908
4 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 83.906058
5 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 160.718841
6 O14548 [R].gLPDQMLYr.[T] DMSO 1240.856710
7 O14548 [R].gLPDQMLYr.[T] DMSO 557.508092
8 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 56.228425
9 O14548 [K].lAGAWASEAYSPQGLkPVVSTEAPPIIFATPTk.[L] DMSO 302.346775
10 O14548 [R].gLPDQMLYr.[T] DMSO 1176.998098
11 O14548 [R].gLPDQMLYr.[T] DMSO 766.993819
我使用相同的代码大约。 5000 个不同的数据框,它总是有效。这些条件的命名完全相同,但在某些情况下会出现问题。
有人可以帮忙吗?
最佳答案
您可以添加regex=False
参数以避免将 Series.str.contains
中的值转换为正则表达式:
melted_Peptides['variable'].str.contains(pair[0], regex=False)
关于python - Pandas str.contains() 在某些情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65843780/