gpt4 book ai didi

python - 匹配 DataFrame 列中的字符串

转载 作者:行者123 更新时间:2023-11-28 20:30:06 25 4
gpt4 key购买 nike

我有如下测试数据框(原始文件为 60 x 350)

Speci 45 46 47 48 49 50 51
PP A T A - G G A
JJ G T A - T A G
KK A T - A G - A
LL A C A A G G A
MM G C A A G G G
NN C - G T C C T

基本上我想做的是传递一个输入字符串和列名/列号,如下所示

input string: CAAGGA
ColF (Column from): 46
ColT ( Column To ): 51

并精确匹配每个对应的指定列(From to )并按降序输出最佳匹配如下

Species Matchs
LL 6
MM 5
PP 4

我仅将 R/Python 语言用于 ggplots 和基本文件处理,不确定如何遍历数据帧和匹配。

最佳答案

my_str <- function(df){
nm <- names(df)
# READ THE DATA IN
string <- unlist(strsplit(readline("string: "),""))
ColF <- grep(readline("ColF (Column from): "), nm)
ColT <- grep(readline("ColT ( Column To ): "), nm)

# COMPUTE THE MATCHES
A <- colSums(t(df[ColF:ColT]) == string)
B <- sort(setNames(A,df[,"Speci"]),decreasing = T)
data.frame(Speci = names(B),Matches = B,row.names = NULL)
}

现在运行 my_str(data),其中 data 是您指定的数据帧

my_str(a)
string: CAAGGA
ColF (Column from): 46
ColT ( Column To ): 51
Speci Matches
1 LL 6
2 MM 5
3 PP 4
4 KK 3
5 JJ 1
6 NN 0

在 python 中:

def my_str(df):
string = pd.np.array(list(input("string: ")))
ColF = input("ColF (Column from): ")
ColT = input("ColT (Column to): ")

A = (df.loc[:,ColF:ColT]==string[None,:]).sum(1).sort_values(ascending = False)
return pd.DataFrame({'Speci': df['Speci'][A.index],'Matches' : A})

现在运行 my_str(data),其中 data 是您指定的数据帧

my_str(df)

string: CAAGGA

ColF (Column from): 46

ColT (Column to): 51
Out[77]:
Speci Matches
3 LL 6
4 MM 5
0 PP 4
2 KK 3
1 JJ 1
5 NN 0

关于python - 匹配 DataFrame 列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com