小编jwi*_*720的帖子

从Python dict获得独特的第一次出现的更有效方法

我有一个非常大的文件,我正在解析并从该行获取键值.我只想要第一个键和值,只有一个值.也就是说,我正在删除重复的值

所以它看起来像:

{
A:1
B:2
C:3
D:2
E:2
F:3
G:1
}
Run Code Online (Sandbox Code Playgroud)

它会输出:

{E:2,F:3,G:1}
Run Code Online (Sandbox Code Playgroud)

这有点让人困惑,因为我并不在乎关键是什么.所以上面的E可以用B或D代替,F可以用C代替,G可以用A.代替.

这是我发现的最佳方法,但随着文件变大,速度非常慢.

mapp = {}
value_holder = []

for i in mydict:
 if mydict[i] not in value_holder:
   mapp[i] = mydict[i]
   value_holder.append(mydict[i])
Run Code Online (Sandbox Code Playgroud)

每次都必须通过value_holder查看:(有更快的方法吗?

python maps dictionary unique

3
推荐指数
1
解决办法
1793
查看次数

github 私人页面中私人存储库中的 Github 操作徽章

随着 Github 私人页面的出现。我实际上可以将在私人存储库中运行的 github 操作放在其中。但是,私有页面无法呈现应有权访问此私有存储库的徽章。

在此输入图像描述

但是,如果我单击图像,就会看到徽章。这是因为我在 Github 中进行了身份验证,并且可以看到有关存储库的所有内容。我想知道为什么行动徽章没有显示。

github github-pages github-actions

3
推荐指数
1
解决办法
849
查看次数

MongoDB 聚合管道多个组使管道复杂化

这是我的文档结构:

{
 "_id" : ObjectId("50dcd7ff4de274a2c4a31df0"),
 "seq_name" : "169:D18M6ACXX:1:1111:17898:82486:GTGACA_10",
 "raw_seq" : "TTGACCTGAGGAGACGGTGACCAGGGTTCCCTGGCCCCAGTAGTCAACGGGAGTTAGACTTCTCGCACAGTAATAAACAGCCGTGTCCTCGGCTCTCAGGCTGTTCATTTGCAGA",
 "seq_aa" : "LQMNSLRAEDTAVYYCARSLTPVDYWGQGTLVTVSSGQ",
 "cdr3_seq" : "GCGAGAAGTCTAACTCCCGTTGACTAC",
 "cdr3_seq_aa" : "ARSLTPVDY",
 "cdr3_seq_len" : 27,
 "cdr3_seq_aa_len" : 9,
 "vg" : "IGHV3-48*03",
 "dg" : "IGHD3-10*02R",
 "jg" : "IGHJ4*02",
 "donor" : 10
}
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢 MongoDB 框架,但是我在使用这个分组管道时遇到了麻烦,因为我还不能 $out 到另一个集合。我可以做这个多分组管道。

db.collection.aggregate({$match:{cdr3_seq_aa_len:{$gt:3}},
   {$group:{_id:$cdr3_seq_aa,other_set:{$addToSet:$cdr3_seq_aa_len}}},
   {$group:{_id:$other_set,sum:{$sum:1}}})
Run Code Online (Sandbox Code Playgroud)

这给了我按长度分组的唯一$cdr3_seq_aa 的数量。

{ id:40, sum:1002031,
  id:41, sum:1949402,....
Run Code Online (Sandbox Code Playgroud)

然而,我想做的第一个手术是按捐赠者分组。所以我可以先知道每个捐助者之间有多少个唯一的 cdr3_seq_aa 字符串。然后我想按长度对它进行分组并计算有多少字符串与长度分组。

database mongodb aggregation-framework

2
推荐指数
1
解决办法
5804
查看次数

使用ggplot2 geom_tile()+ geom_point()突出显示切片

我有以下情节,如下所示:

在此输入图像描述

我正在尝试根据此处的以下代码在另一层中添加点

我导入的数据框如下所示:

residue_id  residue_num per_ddg pg9_seq_bool
A   96  0.00437094862845686 FALSE
A   97  -0.0026333752377897 FALSE
A   98  -0.00453070737795937    FALSE
A   99  -0.0130564560942629 TRUE
A   100 -0.00578979380922636    FALSE
A   101 -0.0128130535970934 FALSE
A   102 -0.0264740211311766 FALSE
A   103 -0.183036342874782  FALSE
A   104 -0.00550669729238368    FALSE
Run Code Online (Sandbox Code Playgroud)

并使用以下代码生成图:

library(ggplot2)
input_ddg <-read.table('per_residue_average.txt',header=T,sep="\t",stringsAsFactors=TRUE)
input_ddg$pg9_seq_bool[input_ddg$pg9_seq == "TRUE"] <- T
input_ddg$pg9_seq_bool[input_ddg$pg9_seq == "FALSE"] <- F


pdf("output.pdf")                                                                                                                                                      
ggplot(input_ddg, aes(residue_id,residue_num,fill=per_ddg) ) +                            
  theme_bw() +                                                                
  geom_tile() +                  
  geom_point(data=input_ddg,aes(size=ifelse(pg9_seq_bool, "dot", "no_dot"))) +
  scale_size_manual(values=c(dot=6,no_dot=NA))+                                                                 
  scale_fill_gradient2(low="blue", mid="white",high="red", midpoint=-.25, na.value="black") +     
  ylab( "Residue …
Run Code Online (Sandbox Code Playgroud)

statistics r ggplot2

2
推荐指数
1
解决办法
1845
查看次数

熊猫 - 以groupby的频率获取价值

有人可以帮助我(大熊猫)中的(可能的)群体.

这是df:

    easy_donor  v_fam   count
0   donor_1_NS  IGHV1   5202376
1   donor_1_NS  IGHV2   1955547
2   donor_1_NS  IGHV3   70426272
3   donor_1_NS  IGHV4   452367
4   donor_1_NS  IGHV5   4842145
5   donor_1_NS  IGHV6   490142
6   donor_1_NS  IGHV7   19708
24  donor_2_NS  IGHV1   31258603
25  donor_2_NS  IGHV2   5295899
26  donor_2_NS  IGHV3   47286417
27  donor_2_NS  IGHV4   44553802
Run Code Online (Sandbox Code Playgroud)

然后我希望每个计数作为由捐赠者分组的计数总和的频率.

喜欢:

df.groupby('easy_donor').sum()['count']
easy_donor
donor_1_NS     83394639
donor_2_NS    129191591
donor_3_HS    220549762
donor_3_NS    104821016
donor_4_HS    200444923
donor_4_NS    121287306
Run Code Online (Sandbox Code Playgroud)

然后,如果它们与easy_donor列匹配​​,则原始数据帧中的每个计数除以groupby总和.我是否必须加入原始数据框?

python group-by pandas pandas-groupby

2
推荐指数
1
解决办法
4126
查看次数

像python字典一样迭代Pandas数据帧

我为每一行都有一个唯一的索引,所以我的数据框看起来像这样 -

>>>df.head()
    Alignment   Sequence    Sequence2b  Post2b  SequenceLength  Sequence2bLength    Name    Year    Clade   Country Patient medoid
index                                               
44644   MRV-KET----QMNWP---N----------L---W---K-------...   MRVKETQMNWPNLWKWGTLIFGLVIICSAADNLWVTVYYGVPVWRD...       AGY 778 0   AA111a_WG3  2009    01_AE   TH  AA111   NA
3616    ------T----QMNWQ---H----------L---W---K-------...   TQMNWQHLWKWGTLILGLVIICSASNLWVTVYYGVPVWKDADTTLF...   AVVKINENATLDDTSY    LKN 822 16  041_WK32    -   B   CH  041 NA
36025   MRV-KET----QMSWP---N----------L---W---K-------...   MRVKETQMSWPNLWKWGTLILGLVIMCSASDNLWVTVYYGVPVWRD...   D   NTS 843 1   AE_Env_CR11_Jan09D  2009    01_AE   TH  CR11    NA
42027   MRV-KGI----RKNCQ---H----------L---W---R-------...   MRVKGIRKNCQHLWRWGIMLLGMLMICSTAEKLWVTVYYGVPVWRE...   DADEIHNDDNSS    SCY 862 12  CR0058S 2002    B   US  -   NA
31626   MRV-RGI----PRNYP---Q----------W---W---I-------...   MRVRGIPRNYPQWWIWGILGFWMIIICRVMESSWVTVYYGVPVWTD...   DAIPLNGNSSNSSSNSSEY LIN 852 19  03ZASK006B2 2003    C   ZA  SK006   NA …
Run Code Online (Sandbox Code Playgroud)

python pandas

1
推荐指数
1
解决办法
5823
查看次数